İçeriğe geç
Önem Bilişim

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.

Hosting ve Alan Adı6 dk okuma
Yüksek Trafikli Forumlar İçin XenForo Optimizasyonu: Redis, Sayfa Önbelleği ve Cron
İçindekiler
  1. Bir XenForo isteği nereden geçer?
  2. Altı temel optimizasyon
  3. Redis’i önbellek olarak tanımlayın
  4. Misafir sayfa önbelleğini açın
  5. Arka plan işlerini sunucu cron’una taşıyın
  6. PHP sürümü, işleyici ve OPcache
  7. Görsel proxy, ek dosyalar ve CDN
  8. Bot trafiğini kontrol edin
  9. Hangi ayar hangi trafiği rahatlatır?
  10. Forumunuz için kaynak tahmini
  11. Sıkça sorulan sorular
  12. XenForo için Redis gerekli mi?
  13. XenForo misafir sayfa önbelleği nedir?
  14. XenForo cron işleri neden önemlidir?
  15. Paylaşımlı hosting XenForo için yeterli mi?
  16. XenForo için ne kadar RAM gerekir?
  17. XenForo optimizasyonuna nereden başlamalıyım?
  18. 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.

KısacaYüksek trafikli bir XenForo forumunu hızlandırmanın en etkili yolları şunlardır: Redis’i önbellek olarak tanımlamak, giriş yapmamış ziyaretçiler için misafir sayfa önbelleğini açmak, arka plan işlerini sayfa isteklerinden ayırıp sunucu cron’una taşımak, güncel PHP ve OPcache kullanmak, statik dosyaları CDN’den sunmak ve kötü niyetli bot trafiğini sınırlamak.

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.

XenForo istek yolu ve önbellek katmanları: CDN, misafir sayfa önbelleği, Redis, PHP OPcache ve veritabanı
XenForo’da bir istek ne kadar erken katmanda yanıtlanırsa sunucu o kadar rahatlar. Misafir trafiğinin çoğu sayfa önbelleğinden dönebilir.

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.

XenForo optimizasyonu için 6 adım: Redis önbellek, misafir sayfa önbelleği, sunucu cron, PHP ve OPcache, görsel proxy ve CDN, bot kontrolü
Yüksek trafikli XenForo forumları için altı temel ayar. İlk ikisi misafir trafiğinde en büyük farkı yaratır.

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.

XenForo iş kuyruğu: sayfa isteğiyle tetiklenen ve sunucu cron ile çalışan yöntemlerin karşılaştırması
Sayfa tetikli iş kuyruğu yoğun anlarda ziyaretçileri bekletir; sunucu cron’u işleri ziyaretçiden bağımsız çalıştırı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?

AyarRahatlattığı trafikEtkisi
Misafir sayfa önbelleğiMisafirler ve arama motoru botlarıÇok yüksek
Redis önbellekTüm ziyaretçiler, özellikle üyelerYüksek
Sunucu cron’uYoğun anlardaki tüm isteklerOrta
PHP 8 ve OPcacheÖnbellekten dönmeyen tüm isteklerYüksek
Görsel proxy ve CDNGörsel ağırlıklı konularOrta
Bot kontrolüKötü niyetli tarayıcılarDuruma 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.

Forum kaynak tahmini
Kaba bir tahmindir; eklentiler, arama yükü ve veritabanı boyutu sonucu değiştirir.
Toplam istek / sn–
PHP’ye ulaşan / sn–
Gereken çekirdek–
–

Ö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.

Paylaş:WhatsAppXFacebookLinkedInTelegram

Bunlar da ilginizi çekebilir