
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.
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?
- 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
- WordPress Veritabanı Optimizasyonu
- Redis Kurulumu Web Önbellekleme
- Restic + Backblaze B2 Encrypted Backup
- DDoS Saldırıları ve Korunma
- E-ticaret Fiyatlandırma Stratejileri
- OpenCart Kurulumu Türkiye E-Ticaret
İ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:


