Buyukweb
VDS ile E-ticaret: Yüksek Trafikli Mağaza Altyapısı

VDS ile E-ticaret: Yüksek Trafikli Mağaza Altyapısı

E-ticaret sitenizi yüksek trafik altında performanslı tutmak için VDS sunucu mimarisi, veritabanı optimizasyonu, CDN entegrasyonu ve ödeme sistemi güvenliği hakkında kapsamlı rehber.

Büyükweb Editör EkibiHosting, Sunucu ve Sistem Yönetimi Editörü15 dakika okuma

VDS ile E-ticaret Neden Tercih Edilmelidir?

Yüksek trafikli e-ticaret siteleri icin paylasimli hosting yetersiz kalabilir ve performans sorunlarina yol acabilir. VDS (Virtual Dedicated Server), adanmis kaynaklar ve tam sunucu kontrolu sunarak e-ticaret sitenizin performansini ve güvenligini önemli ölçüde arttirir. Özellikle kampanya dönemlerinde ve sezonluk trafik artışlarinda hazirlikli olmak, satis kaybini onlemek icin kritik oneme sahiptir. Yavas yuklenen bir e-ticaret sitesi, müşterilerin sepeti terk etmesine ve gelir kaybina neden olur.

E-ticaret Siteleri Icin VDS Kaynak Gereksinimleri

Trafik seviyenize gore uygun VDS planini seçmek performans ve maliyet dengesini sağlar:

Günlük Trafik RAM CPU Disk Bant Genişligi
1.000 ziyaret 4 GB 2 cekirdek 50 GB SSD 1 TB
5.000 ziyaret 8 GB 4 cekirdek 100 GB SSD 3 TB
20.000 ziyaret 16 GB 8 cekirdek 200 GB NVMe 5 TB
50.000 ve üzeri 32 GB 16 cekirdek 500 GB NVMe 10 TB

Web Sunucu Yapılandırmasi

Nginx ve PHP-FPM Performans Optimizasyonu

E-ticaret siteleri icin Nginx web sunucusu ve PHP-FPM kombinasyonu en yüksek performansi sağlar:

# /etc/nginx/conf.d/ecommerce.conf
server {
    listen 80;
    server_name magaza.com www.magaza.com;

    root /var/www/magaza;
    index index.php;

    # Statik dosyalar icin uzun sureli onbellek
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
    }

    # Gzip sikistirma ile bant genisligi tasarrufu
    gzip on;
    gzip_types text/css application/javascript application/json image/svg+xml;
    gzip_min_length 1024;

    # PHP dosyalarini isleme
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_read_timeout 300;
    }
}

PHP-FPM Havuz Ayarlari

; /etc/php/8.2/fpm/pool.d/www.conf
; E-ticaret siteleri icin optimize edilmis ayarlar
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500

; Bellek siniri
php_admin_value[memory_limit] = 256M
php_admin_value[max_execution_time] = 300

Veritabani Performans Optimizasyonu

E-ticaret siteleri yogun veritabani işlemleri gerçekleştirir. MySQL veya MariaDB yapılandırmanizi optimize etmek sayfa yukleme sürelerini önemli ölçüde azaltir:

-- /etc/mysql/conf.d/performance.cnf
-- E-ticaret icin onerilen MySQL ayarlari

-- [mysqld]
-- innodb_buffer_pool_size = 4G  (RAM in %50-70 i)
-- innodb_log_file_size = 512M
-- query_cache_size = 256M
-- max_connections = 300
-- tmp_table_size = 128M
-- max_heap_table_size = 128M
-- innodb_flush_log_at_trx_commit = 2

Redis Onbellek Kurulumu

Redis, veritabani sorgularini ve oturum verilerini bellekte saklayarak sayfa yukleme sürelerini dramatik olarak azaltir:

# Redis sunucu kurulumu
sudo apt install redis-server -y

# Redis yapilandirmasi (/etc/redis/redis.conf)
# maxmemory 1gb
# maxmemory-policy allkeys-lru

# PHP Redis eklentisi kurulumu
sudo apt install php8.2-redis -y

# Redis servisini baslat
sudo systemctl enable --now redis-server

SSL Güvenligi ve PCI DSS Uyumlulugu

E-ticaret siteleri icin SSL sertifikasi ve güvenlik onlemleri zorunludur:

  • PCI DSS uyumlulugu icin TLS 1.2 ve üzeri kullanılmalidir
  • WAF (Web Application Firewall) yapılandırarak saldiri girisimlerini engelleyin
  • Duzenli güvenlik taramalari ve zafiyet testleri yapin
  • Veritabani yedeklemesini günlük olarak otomatiklestirin
  • DDoS korumasi icin Cloudflare veya benzeri CDN entegrasyonu yapin

CDN Entegrasyonu ve Performans

Içerik dagitim ağı kullanarak kullanıcilariniza daha hızlı erisim sağlayin:

CDN Sağlayici Baslica Avantaji Fiyatlandirma Modeli
Cloudflare Ücretsiz plan ve DDoS korumasi Ücretsiz başlayan planlar
BunnyCDN Cok düşük maliyet ve kolay kurulum Yaklasik 1 dolar per TB
Yurt dışı global CDN sağlayıcılar Geniş global ağ, edge cache, çoklu lokasyon USD-bazlı tüketim faturalandırma

Büyükweb E-ticaret VDS Çözümleri

Büyükweb VDS sunuculari, e-ticaret siteleri icin ozel olarak optimize edilmis altyapı sunmaktadir. NVMe SSD depolama, DDoS korumasi ve 7/24 teknik destek ile online magazaniz kesintisiz çalışir. Kampanya dönemlerinde kaynak artırimi aninda yapılabilir. [buyukweb.com](MASK26) adresinden e-ticaret VDS planlarini inceleyin.


Ilgili Büyükweb Hizmetleri:

  • [GPU VDS sunucu seçeneklerimiz](MASK27)
  • [E5-V4 VDS paketlerimizi inceleyin](MASK28)
  • [Tüm hosting ve sunucu paketlerimiz](MASK29)

Platform Bazlı Sunucu Gereksinimleri

E-ticaret platformu farkı kaynak ihtiyaçını 3-5x değiştirir:

Platform Min. RAM Önerilen RAM DB Cache Notlar
WooCommerce 4 GB 8-16 GB MariaDB 10.6+ Redis Object Cache HPOS şart, plugin disiplini kritik
OpenCart 2 GB 6 GB MySQL 5.7+ OPcache + Redis OCMOD'a dikkat — performans katili
PrestaShop 4 GB 8 GB MySQL 5.6+ OPcache + Redis Smarty cache aktif
Magento Open Source 8 GB 16-32 GB MySQL 8 + Elasticsearch Varnish + Redis minimum 8 vCPU
Shopify (managed) hosting yok, sadece tema/uygulama
Custom (Laravel/Symfony) 4 GB 8 GB PostgreSQL/MySQL Redis + Horizon queue DevOps disiplini gerekiyor

WooCommerce için Özel Optimizasyonlar (HPOS dahil)

WooCommerce 8.0+ High-Performance Order Storage (HPOS) sunar — wp_postmeta yerine custom tablolar:

# HPOS aktive
wp wc cot enable

# Mevcut order'ları HPOS'a taşı
wp wc cot sync
wp wc cot verify_data

# Posts table sync'i kapat (sadece HPOS)
wp wc cot disable_compat
Metrik Eski (postmeta) HPOS
Order list query 800ms 80ms
Order detail load 400ms 120ms
Bulk export 10K order 45 dk 6 dk
Disk yer (1M order) ~12 GB ~4 GB

10K+ sipariş varsa HPOS mutlaka aktif. Yeni kurulumlarda default açık.

Action Scheduler Tuning

WooCommerce arka planda binlerce iş Action Scheduler'a atar (e-mail, webhook, abonelik). Yetersiz konfigürasyon veritabanı şişer:

# Tamamlanmış action'ları temizle (cron'da düzenli)
wp action-scheduler clean --hooks=wcs_renewal_payment,woocommerce_send_email

# Failed action'ları sil
wp db query "DELETE FROM wp_actionscheduler_actions WHERE status='failed' AND scheduled_date_gmt < NOW() - INTERVAL 30 DAY"

# Çoklu worker (WP Background Processing'i hızlandır)
add_filter('action_scheduler_queue_runner_concurrent_batches', fn() => 4);
add_filter('action_scheduler_queue_runner_batch_size', fn() => 50);

Object Cache — Redis Detaylı

WordPress + WooCommerce için persistent object cache %40-60 sayfa hızı kazanımı:

# Redis kurulum
apt install redis-server php8.3-redis

# /etc/redis/redis.conf
maxmemory 2gb
maxmemory-policy allkeys-lru        # cache için ideal
appendonly no                        # cache, persist gerek yok
save ""                              # snapshot disable

systemctl restart redis-server
# Redis Object Cache plugin (resmi)
wp plugin install redis-cache --activate
wp redis enable

# Status
wp redis status

# Stats
redis-cli info stats | grep keyspace_hits

wp-config.php:

define('WP_CACHE', true);
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_DATABASE', 0);
define('WP_REDIS_PASSWORD', 'guclu_sifre');   // production'da şart
define('WP_CACHE_KEY_SALT', 'magaza.com');    // multi-site için

Hit ratio doğrula:

redis-cli INFO stats | grep -E "(hits|misses)"
# >%95 olmalı; düşükse cache TTL veya invalidation problemi

Database Scaling

10K+ ürün, 50K+ aylık sipariş için tek MySQL yetmez:

Master-Slave Replikasyon

# Master /etc/mysql/mariadb.conf.d/50-server.cnf
[mysqld]
server-id = 1
log_bin = /var/log/mysql/binlog
binlog_format = ROW
binlog_do_db = magaza_db
sync_binlog = 1
# Slave
[mysqld]
server-id = 2
relay-log = /var/log/mysql/relay-bin
read_only = 1

WP-CLI ile WP HyperDB veya LudicrousDB drop-in eklenir; READ sorgular slave'e, WRITE'lar master'a gider. Tek sunucuda ölçek 5x.

ProxySQL ile Connection Pooling

# Yüksek concurrent connection (kampanya günü)
apt install proxysql

# Query routing — WordPress için
mysql -u admin -padmin -h 127.0.0.1 -P 6032 <<EOF
INSERT INTO mysql_query_rules (rule_id, active, match_pattern, destination_hostgroup)
VALUES (1, 1, '^SELECT.*FOR UPDATE', 0);  -- Master
INSERT INTO mysql_query_rules (rule_id, active, match_pattern, destination_hostgroup)
VALUES (2, 1, '^SELECT', 1);  -- Slave
LOAD MYSQL QUERY RULES TO RUNTIME;
EOF

WP DB_HOST'u 127.0.0.1:6033 (ProxySQL listener) olur — connection pool sınırsız.

CDN ve Edge Cache

Cloudflare Cache Rules — E-ticaret için

WordPress'in default Cache-Control header'ı dinamik olduğu için CDN dump:

# Cloudflare → Caching → Cache Rules

Rule 1: Static assets cache forever
  When: URI Path matches \.(jpg|png|css|js|woff2|svg|webp)$
  Then: Edge TTL = 1 year, Browser TTL = 30 days

Rule 2: Cart, account, checkout BYPASS
  When: URI Path matches /(cart|checkout|my-account|hesabim|sepet)
  Then: Cache Eligibility = Bypass cache

Rule 3: AJAX endpoints BYPASS
  When: URI Path matches /wp-admin/admin-ajax.php
  Then: Bypass cache

Rule 4: Product page short cache
  When: URI Path matches /urun/
  Then: Edge TTL = 5 min, Cache by device type = ON

Rule 5: API
  When: URI Path matches /wp-json/
  Then: Bypass cache (auth header'ı varsa)

LiteSpeed Cache + ESI

Büyükweb cPanel hosting LiteSpeed kullanıyor — LSCache ESI (Edge Side Includes) ile WooCommerce sepet'i cache'lerken sayfa shell'ini de cache'ler:

LiteSpeed Cache → Cache → ESI → Enable ESI: ON
LiteSpeed Cache → Cache → Object → Method: Redis (Memcached değil)
LiteSpeed Cache → Cache → Browser → Browser cache TTL: 31557600 (1 yıl)
LiteSpeed Cache → Cache → Excludes → Cookies: woocommerce_items_in_cart, wp-postpass_*

Black Friday / Kampanya Hazırlığı

Hazırlık T-30 gün T-7 gün T-1 gün Kampanya günü
Sunucu kaynakları (vCPU/RAM artırma) ✓ test ✓ artır
Load testing (k6/Locust) ✓ baseline ✓ stress smoke test
DB optimize (HPOS, index review) doğrula
CDN cache prewarming aktif tut
Backup (full) her saat
Monitoring alarm thresholds ayar aktif gözlem
Rollback plan ✓ yaz review review hazır
Payment gateway test tekrar smoke gözlem
Plugin update freeze uyarla uygula
# k6 stress test örneği
k6 run --vus 200 --duration 5m stress.js

# Önemli metrikler
# - http_req_duration p95 < 500ms
# - http_req_failed < %0.5
# - sustained throughput

Payment Gateway Entegrasyonu

Türkiye'de yaygın gateway'ler ve sunucu gereksinimleri:

Gateway API tipi PCI scope Webhook Notlar
iyzico REST + iframe SAQ A (token) en kolay, her plana uygun
PayTR API + form SAQ A 3D zorunlu, low chargeback
Stripe (TR) REST + Elements SAQ A global, ücretsiz subdomain doğrulama
Garanti VPOS XML/SOAP SAQ A-EP veya D ✗ kısmi bankaya direkt, en düşük komisyon
İşbank/YKB Vakıf VPOS SOAP/XML SAQ A-EP/D direkt entegrasyon, dev maliyeti yüksek

PCI DSS scope minimize: kart bilgileri asla sunucudan geçmesin; tokenization (iyzico iframe, Stripe Elements). Sunucu sadece token + amount ile API çağrısı yapar → SAQ A (en hafif uyum).

Monitoring Stack

E-ticaret için zorunlu metrikler:

# Prometheus alarmları
- alert: HighCheckoutErrorRate
  expr: rate(woo_checkout_errors_total[5m]) > 0.1
  annotations:
    summary: "Checkout error rate > %10 — gateway veya DB sorunu"

- alert: SlowDatabase
  expr: mysql_global_status_slow_queries > 100
  for: 5m
  annotations:
    summary: "Slow query sayısı > 100/dk"

- alert: CartAbandonmentSpike
  expr: increase(woo_cart_abandoned_total[1h]) > 50
  annotations:
    summary: "Sepet terk anomalisi — UI veya gateway sorunu olabilir"

- alert: APMOOM
  expr: node_memory_MemAvailable_bytes < 500000000
  annotations:
    summary: "Bellek 500 MB altı — OOM riski"

Application monitoring:

  • Sentry — PHP error tracking (WP plugin var)
  • New Relic / Datadog APM — request bazlı profiling, slow transaction
  • Query Monitor (WP plugin) — admin için anlık SQL/Hook debug
  • Blackfire.io — production-safe profiler

Business metrics:

  • Conversion rate, cart abandonment, AOV → Google Analytics 4 + Server-side tracking (PII riski az)
  • Real-time order dashboard (WP-CLI watch -n 5 'wp wc shop_order list --status=processing --format=count')

Yedekleme Stratejisi

E-ticaret için 3-2-1 kuralı + point-in-time recovery (PITR):

Yedek tipi Sıklık Konum Saklama
Full DB dump Günlük Sunucu /backup + S3/B2 30 gün
Binary log (PITR) Real-time Master + slave 7 gün
Dosya + uploads Günlük rsync incremental 14 gün
Full snapshot (LVM/Btrfs) Günlük Sunucu 7 gün
Off-site arşiv Haftalık Restic + Backblaze B2 1 yıl
# mariabackup ile sıcak yedek (downtime'sız)
mariabackup --backup --target-dir=/backup/full-$(date +%Y%m%d) \
  --user=backup --password='...'

# PITR — point-in-time recovery için binlog'u arşivle
rsync -avz /var/log/mysql/binlog.* /backup/binlogs/

# Restic ile encrypted off-site (haftalık)
restic -r b2:bucket-name:/backup backup /backup --tag=weekly

KVKK ve Veri Yerelliği

Türkiye'deki e-ticaret siteleri için kritik:

  • Türkiye lokasyonlu sunucu = data residency uyum (ek Yurt Dışı Veri Aktarım Sözleşmesi gerekmiyor) → Büyükweb Türkiye VDS Bursa Tier 3
  • Aydınlatma Metni + Açık Rıza zorunlu (sepet bilgisi, e-mail kampanya)
  • Veri minimizasyonu — sadece gerekli alan toplanmalı
  • Pseudonymization — staging/test için PII anonimleştirme
  • Right to be forgotten — kullanıcı silmesi (wp user delete + WC anonimize)
  • Veri ihlali bildirimi — 72 saat içinde KVKK'ya bildirim
  • VERBİS kayıt — şirket büyüklüğü kriteri varsa

Headless / Composable Commerce

Modern alternatif: Frontend (Next.js/Nuxt) + Headless commerce backend (Strapi, Saleor, Shopware, WooCommerce REST API):

Avantaj Dezavantaj
Performans (TTFB <100ms, edge SSR) Geliştirme maliyet artışı
Kullanıcı deneyimi (anlık reaktivite) DevOps disiplini gerekiyor
API-first → mobile + iot + amp Plugin/tema ekosistem dar
Edge cache (Cloudflare Workers) İlk launch hızı yavaş

VDS gereksinimi: 4-8 GB RAM Node.js SSR + 4-8 GB RAM commerce backend; iki katmanlı mimari E5v4 VDS ile rahatça çalışır.

Sıkça Sorulan Sorular

Paylaşımlı hosting'den VDS'e ne zaman geçilir?

Belirtiler: 1) Aynı anda 50+ aktif kullanıcıda yavaşlama 2) cPanel'de "Resource Limit Reached" sık 3) Cron job timeout'lar 4) PHP memory limit sürekli yetersiz 5) Eklenti uyumsuzluğu (Imunify360 + Redis lokal yok). Bu noktada VDS'e geç → 30-50 GB RAM, 4+ vCPU başlangıç önerisi.

Black Friday öncesi geçici upgrade mantıklı mı?

Evet — Büyükweb VDS aylık ölçekle artırılabilir; kampanya öncesi 8 → 16 vCPU, 16 → 32 GB RAM 1 ay geçici upgrade + sonrası geri düşürme yaygın pratik. Test edilmiş %4-5 ek maliyet karşılığı %30+ satış kaybı engeller.

CDN sepet sayfasını cache'lersem ne olur?

Felaket. Müşteri A'nın sepeti müşteri B'ye gösterilir. /cart, /checkout, /my-account mutlaka bypass cache olmalı; cookie bazlı cache key (woocommerce_items_in_cart, wp_session) ayrım yapar.

iyzico mu PayTR mı?

Komisyon: PayTR genelde %1.5-2.5; iyzico %2.0-2.9. Test mode kolaylık: iyzico iframe en hızlı entegre. Chargeback yönetimi: PayTR Türkiye odaklı, daha hızlı çözüm. Hibrit: iki gateway'i de aktif tut, müşteri seçsin (conversion %5-8 artırır).

MySQL mü PostgreSQL mi e-ticarette?

WordPress/WooCommerce/OpenCart MySQL/MariaDB zorunlu (ORM uyumsuzluğu yok). Custom Laravel uygulamalarda PostgreSQL JSON desteği güçlü, indexing daha esnek. Magento 2 hâlâ MySQL.

Plugin sayım sınırı var mı?

Sayı değil, kalıte + birbirleriyle çakışma. 80 plugin'li hızlı bir site, 15 plugin'li yavaş bir siteden iyi. Performans test (Query Monitor + GTmetrix) ile her plugin'in maliyetini ölç. Aynı işi yapan iki plugin (örn. SEO + Site Kit + Yoast) çakışır → birini sil.

Sertifika ve uyumluluk PCI DSS — hosting paketinde dahil mi?

Hayır — PCI DSS şirketin sorumluluğu. Hosting alt yapı uyumlu (Tier 3, ayrı network, log retention) olabilir ama uyum sürecini siz yönetirsiniz. SAQ A (token tabanlı): self-assessment, ücretsiz. SAQ D (kart sunucuda): yıllık denetim, $5K-20K maliyet. Tokenization şart — kartı sunucuda tutma.

Aynı VDS'te birden fazla mağaza?

Mümkün — her mağaza ayrı domain, ayrı PHP-FPM pool, ayrı DB. Avantaj: kaynak paylaşımı + tek backup + monitoring. Dezavantaj: bir mağaza compromise diğerlerini etkileyebilir → CageFS-benzeri izolasyon yok. Production öneri: küçük mağazalar shared VDS, büyükler ayrı.

Magento için minimum sunucu?

Magento 2 Open Source: 8 GB RAM kesin minimum, 16 GB önerilen. 8 vCPU, NVMe disk, Elasticsearch + Varnish + Redis ayrı servis. Büyükweb fiziksel dedicated sunucu Magento'da fark yaratır — VDS noisy-neighbor riski büyük platformda kritik.

"Site yavaş" şikayeti geldi, nereden başlayım?

  1. GTmetrix / WebPageTest — gerçek kullanıcı simülasyon 2) Query Monitor — slow SQL? 3) htop — CPU/RAM hangi process? 4) tail -f /var/log/php-fpm.log — error spam? 5) Redis hit rate — cache çalışıyor mu? 6) Plugin disable bisection — son eklenen plugin sebep mi? Profilleme verisi olmadan tahmin yapma.

Büyükweb E-ticaret VDS Paketleri

Büyükweb VDS paketleri Türkiye Bursa Tier 3 veri merkezinde:

  • Başlangıç (5K ziyaret/gün): Sanal Sunucu 4 vCPU / 8 GB RAM / NVMe — WooCommerce + Redis + LiteSpeed
  • Orta (20K ziyaret/gün): E5v4 VDS 8 vCPU / 16 GB RAM — HPOS + ProxySQL + LSCache ESI
  • Yüksek (50K ziyaret/gün): E-ticaret VDS 16 vCPU / 32 GB RAM — Master-Slave + LB + CDN
  • Magento / Headless: Fiziksel Dedicated — özel donanım, dedicate kaynak

Kampanya günleri için on-demand upgrade + DDoS koruma + 7/24 NOC desteği. Detaylar için 0850 302 60 70.

İlgili Rehberler

İlgili Büyükweb Hizmetleri

Türkiye Tier 3 veri merkezinde sabit fiyatlı VDS ve VPS paketlerimiz:

Sorularınız için 0850 302 60 70 numaralı destek hattımıza veya iletişim sayfamıza yazabilirsiniz.

VDS & VPS Rehberi İlgili Hizmetlerimiz

Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin

Etiketler:

#vds eticaret#woocommerce vds#e-ticaret altyapı#yüksek trafik sunucu#redis woocommerce#vds mağaza#eticaret hosting

Bu yazıyı paylaş