Yüksek Trafikli Forumlar İçin XenForo Optimizasyonu: Redis, Sayfa Önbelleği ve Cron
XenForo optimizasyonu: Redis önbellek, misafir sayfa önbelleği, sunucu tabanlı iş kuyruğu, OPcache, görsel proxy ve bot kontrolü, örnek config.php ile.

İçindekiler
- Bir XenForo isteği nereden geçer?
- Altı temel optimizasyon
- Redis’i önbellek olarak tanımlayın
- Misafir sayfa önbelleğini açın
- Arka plan işlerini sunucu cron’una taşıyın
- PHP sürümü, işleyici ve OPcache
- Görsel proxy, ek dosyalar ve CDN
- Bot trafiğini kontrol edin
- Hangi ayar hangi trafiği rahatlatır?
- Forumunuz için kaynak tahmini
- Sıkça sorulan sorular
- XenForo için Redis gerekli mi?
- XenForo misafir sayfa önbelleği nedir?
- XenForo cron işleri neden önemlidir?
- Paylaşımlı hosting XenForo için yeterli mi?
- XenForo için ne kadar RAM gerekir?
- XenForo optimizasyonuna nereden başlamalıyım?
- Sonuç: Misafiri önbellekten, üyeyi Redis’ten karşılayın
Bir oyun forumu yeni bir sezon duyurusunun ardından bir gecede üç kat ziyaretçi alıyor. Konu sayfaları önce yavaşlıyor, sonra “veritabanına bağlanılamadı” hatası veriyor. Sunucu panelinde işlemci yüzde yüzde, ama ziyaretçilerin çoğu yalnızca okuyan misafirler. XenForo optimizasyonu tam da bu noktada fark yaratır: Doğru ayarlarla aynı sunucu, misafirlerin çoğunu PHP ve veritabanına hiç uğramadan yanıtlayabilir.
Bu yazıda yüksek trafikli XenForo forumları için sunucu tarafı ayarları anlatıyoruz: Redis önbelleği, misafir sayfa önbelleği, sunucu tabanlı iş kuyruğu, PHP ayarları, görsel ve ek dosya teslimi ile bot trafiği. Örneklerdeki ayarlar, kaynakların size ayrıldığı paylaşımsız XenForo hosting ortamlarında doğrudan uygulanabilir.
Bir XenForo isteği nereden geçer?
Bir ziyaretçi konu sayfasını açtığında istek önce web sunucusuna gelir. Statik dosyalar, yani stil dosyaları, betikler ve görseller doğrudan diskten ya da bir CDN’den sunulur. Sayfanın kendisi ise PHP ile oluşturulur. XenForo şablonları, kullanıcı oturumunu ve konu verilerini önce önbellekten, bulamazsa veritabanından okur.
Optimizasyonun mantığı, isteği bu zincirin olabildiğince başında yanıtlamaktır. Misafir sayfa önbelleğinden dönen bir istek PHP’nin büyük kısmını ve veritabanını atlar. Redis’te bulunan bir veri veritabanına sorgu gönderilmesini önler. OPcache ise PHP çalışsa bile kodun yeniden derlenmesini engeller.

Altı temel optimizasyon
XenForo optimizasyonu için aşağıdaki adımları sırayla uygulamanızı öneririz. Her adımdan sonra yoğun bir saatte sunucunun işlemci ve bellek kullanımını ölçün. Böylece hangi ayarın ne kadar kazanç sağladığını görür, gereksiz değişikliklerden kaçınırsınız. Değişikliklerden önce src/config.php dosyasının ve veritabanının yedeğini almayı unutmayın.

Redis’i önbellek olarak tanımlayın
XenForo, varsayılan olarak birçok veriyi veritabanında saklar ve her istekte okur. Kalıcı bir önbellek tanımlandığında bu veriler bellekte tutulur. Sunucunuzda Redis kuruluysa src/config.php dosyasına şu satırları eklemek yeterlidir:
$config['cache']['enabled'] = true;
$config['cache']['provider'] = 'Redis';
$config['cache']['config'] = [
'host' => '127.0.0.1',
'port' => 6379
];
Redis’in yalnızca yerel adresten dinlediğinden ve internete açık olmadığından emin olun. Aynı sunucuda birden fazla forum çalışıyorsa her biri için farklı bir Redis veritabanı numarası ya da önek kullanın.
Misafir sayfa önbelleğini açın
Büyük forumlarda ziyaretçilerin önemli bir bölümü giriş yapmamış misafirler ve arama motoru botlarıdır. Bu ziyaretçiler aynı konu sayfasını aynı şekilde görür. XenForo’nun misafir sayfa önbelleği, bu sayfaların hazır kopyasını saklayarak her istekte yeniden oluşturulmasını önler. Önbellek tanımlandıktan sonra şu ayarla açılır:
$config['pageCache']['enabled'] = true;
$config['pageCache']['lifetime'] = 300;
Süre saniye cinsindendir. 300 saniye, misafirlerin yeni yanıtları en geç beş dakika içinde görmesi anlamına gelir. Çok hızlı akan forumlarda bu süreyi kısaltabilir, durgun forumlarda uzatabilirsiniz.
Arka plan işlerini sunucu cron’una taşıyın
XenForo; e-posta bildirimleri, istatistik güncellemeleri ve temizlik görevleri gibi arka plan işlerini varsayılan olarak ziyaretçi istekleriyle tetikler. Yoğun forumlarda bu, bazı ziyaretçilerin sayfalarının iş kuyruğu yüzünden gecikmesine yol açar. Yönetim panelindeki performans seçeneklerinden iş tetikleyicisini sunucu tabanlı olarak değiştirip her dakika çalışan şu cron görevini tanımlayın:
* * * * * php /home/forum/public_html/cmd.php xf:run-jobs --max-execution-time=55
Komuttaki yolu kendi forum klasörünüze göre düzenleyin. Bu ayardan sonra arka plan işleri ziyaretçi isteklerinden bağımsız, düzenli aralıklarla çalışır.

PHP sürümü, işleyici ve OPcache
XenForo’nun güncel sürümleri PHP 8 ile çalışır ve PHP 8, eski sürümlere göre aynı kodu daha hızlı çalıştırır. OPcache’in açık olması, her istekte yüzlerce PHP dosyasının yeniden derlenmesini önler. Eş zamanlı istek sayısı yüksek forumlarda PHP işleyicisinin süreç sayısı da önemlidir. Çok düşükse istekler sıraya girer, çok yüksekse bellek yetmez. Süreç sayısını sunucunuzun bellek miktarına göre ayarlayın.
Görsel proxy, ek dosyalar ve CDN
Kullanıcıların mesajlara eklediği harici görseller, her sayfa açılışında başka sunuculardan yüklenir ve sayfayı yavaşlatabilir. XenForo’nun yerleşik görsel proxy’si bu görselleri bir kez indirip sizin sunucunuzdan sunar. Stil dosyaları, betikler ve avatar görselleri için bir CDN kullanmak ise sunucunuza gelen istek sayısını belirgin şekilde azaltır. Ek dosyaları yoğun olan büyük forumlar, bu dosyaları harici bir nesne depolama alanına taşıyarak disk ve IO yükünü hafifletebilir.
Bot trafiğini kontrol edin
Büyük forumların trafiğinin önemli bir kısmı arama motoru botlarından ve içerik kopyalayan agresif tarayıcılardan gelir. Meşru botlar misafir sayfa önbelleğinden faydalanır. Saniyede onlarca istek gönderen kötü niyetli tarayıcıları ise web sunucusu seviyesinde hız sınırıyla ya da bir web uygulama güvenlik duvarıyla durdurmak gerekir. Sunucu loglarında en çok istek gönderen IP adreslerine ve kullanıcı aracılarına düzenli olarak bakın.
Hangi ayar hangi trafiği rahatlatır?
| Ayar | Rahatlattığı trafik | Etkisi |
|---|---|---|
| Misafir sayfa önbelleği | Misafirler ve arama motoru botları | Çok yüksek |
| Redis önbellek | Tüm ziyaretçiler, özellikle üyeler | Yüksek |
| Sunucu cron’u | Yoğun anlardaki tüm istekler | Orta |
| PHP 8 ve OPcache | Önbellekten dönmeyen tüm istekler | Yüksek |
| Görsel proxy ve CDN | Görsel ağırlıklı konular | Orta |
| Bot kontrolü | Kötü niyetli tarayıcılar | Duruma göre çok yüksek |
Forumunuz için kaynak tahmini
Aşağıdaki araç, eş zamanlı çevrimiçi kullanıcı sayınıza ve misafir oranınıza göre kabaca kaç işlemci çekirdeğine ihtiyaç duyduğunuzu tahmin eder.
Önem Bilişim’in XenForo için paylaşımsız VDS altyapılı paketleri 2, 3 ve 4 çekirdek ile 2, 3 ve 4 GB bellek seçenekleriyle sunuluyor. Paketlerde CyberPanel kontrol paneli, SSD disk, 1 Gbit hat ve DDoS koruması bulunuyor. CyberPanel, OpenLiteSpeed web sunucusu üzerinde çalışır ve alan adı, veritabanı, e-posta ve SSL işlemlerini web arayüzünden yönetmenizi sağlar.
İlginizi çekebilir: WordPress sunucu tarafı optimizasyon: önbellek, Redis ve veritabanı
Sıkça sorulan sorular
XenForo için Redis gerekli mi?
Küçük forumlar Redis olmadan da sorunsuz çalışır. Ancak eş zamanlı çevrimiçi kullanıcı sayısı arttıkça Redis, veritabanına giden okuma isteklerini belirgin şekilde azaltır. Misafir sayfa önbelleğini kullanmak için de bir önbellek sağlayıcısı tanımlanmış olması gerekir. Yüksek trafikli forumlar için Redis güçlü bir şekilde önerilir.
XenForo misafir sayfa önbelleği nedir?
Misafir sayfa önbelleği, giriş yapmamış ziyaretçilere gösterilen sayfaların hazır kopyasını belirli bir süre saklayan XenForo özelliğidir. Aynı konuyu açan yüzlerce misafir, sayfanın her seferinde yeniden oluşturulmasına gerek kalmadan önbellekten yanıt alır. Üyelere ise her zaman güncel ve kişiselleştirilmiş sayfa gösterilir.
XenForo cron işleri neden önemlidir?
XenForo; bildirim e-postaları, istatistik güncellemeleri ve temizlik gibi işleri arka planda çalıştırır. Varsayılan ayarda bu işler ziyaretçi istekleriyle tetiklenir ve yoğun anlarda bazı sayfaları geciktirebilir. Sunucu tabanlı cron’a geçmek, bu işlerin ziyaretçilerden bağımsız ve düzenli çalışmasını sağlar.
Paylaşımlı hosting XenForo için yeterli mi?
Küçük ve orta ölçekli forumlar için yeterli olabilir. Ancak yüksek trafikli forumlar Redis, sunucu cron’u ve PHP süreç ayarları gibi sunucu seviyesinde müdahale gerektirir. Bu ayarlar paylaşımlı ortamda genellikle mümkün değildir. Kaynakların size ayrıldığı bir VDS ortamı bu yüzden büyüyen forumlar için daha uygundur.
XenForo için ne kadar RAM gerekir?
Küçük bir forum için 2 GB başlangıç seviyesidir. Redis, veritabanı ve PHP süreçleri aynı sunucuda çalıştığı için eş zamanlı çevrimiçi kullanıcı sayısı yüzlerle ifade edildiğinde 4 GB ve üzeri daha rahat bir alan sağlar. Veritabanınızın sık kullanılan kısmının bellekte kalabilmesi performans için kritiktir.
XenForo optimizasyonuna nereden başlamalıyım?
Önce trafiğinizin ne kadarının misafir olduğunu öğrenin. Misafir oranı yüksekse misafir sayfa önbelleği en büyük kazancı sağlar. Ardından Redis’i tanımlayın ve arka plan işlerini sunucu cron’una taşıyın. Bu üç adım, XenForo optimizasyonunda genellikle en kısa sürede en belirgin sonucu verir.
Sonuç: Misafiri önbellekten, üyeyi Redis’ten karşılayın
XenForo optimizasyonunun özü basittir: Misafirleri sayfa önbelleğinden, üyeleri Redis’ten karşılayın; arka plan işlerini ziyaretçilerden ayırın ve kötü niyetli botları kapıda durdurun. Bu ayarlarla aynı sunucu, trafik zirvelerinde bile çok daha fazla ziyaretçiyi taşır.
Forumunuz için bu ayarları uygulayabileceğiniz paylaşımsız bir altyapı arıyorsanız Önem Bilişim XenForo hosting paketlerini inceleyebilirsiniz. Forum ve topluluk siteleri üzerine diğer yazılarımızı Önem Bilişim blogunda bulabilirsiniz.
XenForo hosting
Forumunuz için paylaşımsız altyapı
Size ayrılmış CPU ve RAM, SSD disk, 1 Gbit hat, DDoS koruması ve CyberPanel ile XenForo’yu tam sürüm desteğiyle çalıştırın.