Magento 2 Hosting Optimizasyonu: Redis, Elasticsearch ve Varnish Ayarları

Magento 2 Hosting Optimizasyonu: Redis, Elasticsearch ve Varnish Ayarları

Magento 2, kurumsal düzeyde e-ticaret platformları arasında en güçlü seçeneklerden biridir; ancak bu güç, doğru yapılandırılmamış bir sunucuda yavaşlık olarak geri döner. Varsayılan kurulumda sayfa yükleme süreleri 5-8 saniyeyi bulabilir. Redis cache, Elasticsearch, Varnish full-page cache ve PHP-FP

Magento 2, kurumsal düzeyde e-ticaret platformları arasında en güçlü seçeneklerden biridir; ancak bu güç, doğru yapılandırılmamış bir sunucuda yavaşlık olarak geri döner. Varsayılan kurulumda sayfa yükleme süreleri 5-8 saniyeyi bulabilir. Redis cache, Elasticsearch, Varnish full-page cache ve PHP-FPM optimizasyonu ile bu süreyi 1-2 saniyenin altına düşürmek mümkündür. Bu rehberde Magento 2 hosting altyapınızı katman katman optimize ediyoruz.

Magento 2 Altyapı Gereksinimleri

Magento 2, kaynak açısından talepkar bir platformdur. Adobe resmi sistem gereksinimlerine göre minimum 2 GB RAM gerektirir; ancak üretim ortamında 4 GB altı ciddi performans sorunlarına yol açar.

Bileşen Minimum Önerilen (Production)
CPU 2 vCPU 4+ vCPU
RAM 2 GB 8+ GB
Disk SSD 20 GB NVMe SSD 50+ GB
PHP 8.1 8.2 / 8.3
MySQL/MariaDB 8.0 / 10.6 8.0+ / 10.11+
Elasticsearch/OpenSearch 7.17 8.x / OpenSearch 2.x

Redis Cache Yapılandırması

Magento 2 varsayılan olarak dosya tabanlı cache kullanır. Her sayfa yüklemesinde yüzlerce dosya okunur ve bu disk I/O darboğazı oluşturur. Redis'e geçiş, cache okuma süresini milisaniyeden mikrosaniyeye düşürür. Magento'da Redis üç farklı amaçla kullanılır: backend cache, full-page cache ve session storage.

app/etc/env.php
// Backend cache - Redis DB 0
'cache' => [
    'frontend' => [
        'default' => [
            'backend' => 'Magento\\Framework\\Cache\\Backend\\Redis',
            'backend_options' => [
                'server' => '127.0.0.1',
                'port' => '6379',
                'database' => '0',
                'compress_data' => '1'
            ]
        ],
        'page_cache' => [
            'backend' => 'Magento\\Framework\\Cache\\Backend\\Redis',
            'backend_options' => [
                'server' => '127.0.0.1',
                'port' => '6379',
                'database' => '1',
                'compress_data' => '1'
            ]
        ]
    ]
],

// Session storage - Redis DB 2
'session' => [
    'save' => 'redis',
    'redis' => [
        'host' => '127.0.0.1',
        'port' => '6379',
        'database' => '2',
        'max_concurrency' => '6',
        'break_after_frontend' => '5',
        'bot_lifetime' => '7200'
    ]
]

💡 İpucu: Redis'te her amaç için ayrı database kullanın (cache: DB 0, page_cache: DB 1, session: DB 2). Cache temizleme işlemi session verilerini etkilemez. Redis bellek kullanımını redis-cli INFO memory ile izleyin.

Elasticsearch / OpenSearch Yapılandırması

Magento 2.4+ sürümünden itibaren MySQL tabanlı arama kaldırılmıştır; Elasticsearch veya OpenSearch zorunludur. Doğru yapılandırılmış bir arama motoru, binlerce ürün arasında milisaniye düzeyinde arama sonuçları sunar ve otomatik tamamlama, eş anlamlı kelimeler ve faceted search gibi gelişmiş özellikler sağlar.

terminal
# Elasticsearch yapilandirmasi
bin/magento config:set catalog/search/engine elasticsearch8
bin/magento config:set catalog/search/elasticsearch8_server_hostname localhost
bin/magento config:set catalog/search/elasticsearch8_server_port 9200
bin/magento config:set catalog/search/elasticsearch8_index_prefix magento2

# Arama indexini yeniden olustur
bin/magento indexer:reindex catalogsearch_fulltext

⚠️ Dikkat: Elasticsearch minimum 512 MB heap memory gerektirir; 10.000+ ürünlü mağazalarda 1-2 GB önerilir. /etc/elasticsearch/jvm.options dosyasında -Xms1g ve -Xmx1g ayarlayın. Heap boyutunu toplam RAM'in %50'sinden fazla yapmayın.

Varnish Full-Page Cache

Varnish, HTTP reverse proxy cache'dir. Magento'nun oluşturduğu HTML sayfalarını bellekte tutar ve tekrarlayan isteklerde PHP'ye hiç dokunmadan doğrudan yanıt verir. Varnish aktifken sayfa yükleme süresi 2-3 saniyeden 200-300 milisaniyeye düşebilir.

terminal
# Magento'yu Varnish icin yapilandir
bin/magento config:set system/full_page_cache/caching_application 2

# Varnish VCL dosyasini olustur
bin/magento varnish:vcl:generate --backend-host=127.0.0.1 \
  --backend-port=8080 --output-file=/etc/varnish/default.vcl

# Varnish'i yeniden baslat
systemctl restart varnish

Tipik Magento + Varnish mimarisi:

Nginx (Port 443)

SSL termination ve statik dosya sunumu. Dinamik istekleri Varnish'e yönlendirir.

Varnish (Port 80)

Full-page cache. Cache'de varsa anında yanıt verir, yoksa backend'e iletir.

PHP-FPM (Port 8080)

Magento uygulamasını çalıştırır. Yalnızca cache miss durumunda devreye girer.

PHP-FPM Optimizasyonu

Magento 2, her istekte yoğun PHP işlemi yapar. PHP-FPM pool ayarları, eşzamanlı istek kapasitesini doğrudan etkiler. Yanlış yapılandırma ya isteklerin kuyruğa girmesine ya da sunucunun bellek tükenmesine neden olur.

/etc/php/8.3/fpm/pool.d/magento.conf
[magento]
user = www-data
group = www-data

pm = dynamic
pm.max_children = 50        ; 8 GB RAM icin
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500       ; Bellek sizintisini onle

; PHP ayarlari
php_admin_value[memory_limit] = 756M
php_admin_value[max_execution_time] = 300
php_admin_value[realpath_cache_size] = 10M
php_admin_value[realpath_cache_ttl] = 7200
php_admin_value[opcache.memory_consumption] = 512
php_admin_value[opcache.max_accelerated_files] = 60000

Magento 2 e-ticaret altyapınız için Hosted Cloud bulut sunucularını değerlendirebilirsiniz. NVMe SSD diskler ve anlık kaynak artırımı ile mağazanız yoğun trafik dönemlerinde bile hızlı kalır. E-ticaret hosting gereksinimleri hakkında daha fazla bilgi için E-Ticaret Hosting rehberimizi inceleyebilirsiniz.

Sıkça Sorulan Sorular

Magento 2 için shared hosting yeterli mi?

Hayır. Magento 2, Elasticsearch/OpenSearch zorunluluğu, yüksek bellek ihtiyacı ve Varnish gereksinimi nedeniyle shared hosting'de çalışamaz. Minimum VPS veya bulut sunucu gerektirir.

Varnish olmadan Magento hızlı çalışır mı?

Redis cache ile kabul edilebilir performans elde edilebilir ancak Varnish, sayfa yükleme süresini 5-10 kat azaltır. Özellikle ürün listeleme ve kategori sayfalarında fark dramatiktir. Üretim ortamında Varnish şiddetle önerilir.

Elasticsearch yerine OpenSearch kullanabilir miyim?

Evet, Magento 2.4.6+ sürümünden itibaren OpenSearch resmi olarak desteklenmektedir. OpenSearch, Elasticsearch'ün açık kaynak fork'udur ve lisans sorunu yoktur. Yapılandırma neredeyse aynıdır.

Magento 2 için ne kadar RAM gerekli?

Küçük mağazalar (1.000 ürün) için 4 GB, orta ölçekli (10.000 ürün) için 8 GB, büyük mağazalar (50.000+ ürün) için 16+ GB önerilir. Redis, Elasticsearch ve Varnish'in her biri ek bellek tüketir.

Magento 2 deployment sırasında mağaza kapanır mı?

bin/magento maintenance:enable ile bakım moduna alabilirsiniz. Static content deploy ve DI compile işlemleri sırasında mağaza erişilemez olur. Zero-downtime için blue-green deployment veya symlink tabanlı deploy stratejileri kullanılabilir.

Sonuç

Magento 2 hosting optimizasyonu dört temel katmandan oluşur: Redis ile backend/session cache, Elasticsearch ile hızlı arama, Varnish ile full-page cache ve PHP-FPM ile eşzamanlı istek yönetimi. Bu katmanları doğru yapılandırdığınızda sayfa yükleme süreleri 1-2 saniyenin altına düşer ve mağazanız yoğun trafik dönemlerinde bile stabil kalır.

Magento Mağazanız İçin Güçlü Altyapı

Hosted Cloud'un NVMe SSD bulut sunucuları ile Magento 2 mağazanızı Redis, Varnish ve Elasticsearch ile optimize edin.

E-Ticaret Sunucu Planlarını İncele →
M

Merve Arslan

WordPress & Hosting Uzmanı

WordPress performans optimizasyonu, hosting seçimi ve e-ticaret altyapıları üzerine rehber içerikler hazırlamaktadır.

Yorumlar yakında