Sorun: WordPress her sayfayı sıfırdan yeniden inşa eder
Kutudan çıktığı haliyle WordPress tamamen dinamiktir: her sayfa görüntülemesi PHP'yi başlatır, eklentileri yükler, düzinelerce MySQL sorgusu çalıştırır ve ziyaretçiye tek bir byte ulaşmadan önce HTML'i bir araya getirir. Bu, az sayıda kullanıcı için sorun değildir ama yük altında felakettir, çünkü eşzamanlılık kaç PHP worker'ınız olduğu ve MySQL'in ne kadar hızlı yanıt verdiğiyle sınırlıdır. Bir gönderi paylaşıldığında veya bir kampanya devreye girdiğinde, PHP worker'ları veritabanını beklerken birikir, yanıt süreleri şişer ve site tamamen çökebilir — içerik ağır olduğu için değil, her ziyaretçi için aynı işin yeniden yapılıyor olması yüzünden.
Redis object cache: veritabanına aynı şeyi sormayı bırakın
Yönetilen Redis object cache, WordPress'in iç sorgularını yakalar ve sonuçlarını bellekte tutar. Aksi halde her istekte MySQL'den getirilecek menüler, widget verileri, terim ilişkileri, seçenek değerleri ve gönderi meta verileri, mikrosaniyeler içinde Redis'ten sunulur. Bir trafik artışı altında bu, sakince az sayıda cache-miss sorgusunu yanıtlayan bir veritabanı ile boğulan bir veritabanı arasındaki farktır. Özellikle edge'de tam olarak sayfa cache'lenemeyen giriş yapılmış ve dinamik sayfalara yardımcı olur, çünkü cache'lenemeyen sayfalar bile veritabanı işlerinin büyük kısmının kesilmesinden faydalanır.
CDN edge cache: ağır işi yakından sunun
Bir WordPress sayfasının ağırlığının çoğu statiktir — görseller, CSS, JS ve fontlar — ve bunların hiçbirinin oluşturulması için PHP'ye ihtiyaç yoktur. Bu varlıkları cdn.com.tr edge'ine göndermek, ziyaretçiye yakın bir konumdan teslim edilmeleri ve ilk doldurmadan sonra asla origin'e dokunmamaları anlamına gelir. Bütün olarak cache'lenmesi güvenli içerik için tam sayfa edge cache daha da ileri gider ve PHP'yi hiç uyandırmadan tüm isteği yanıtlar. Birleşik etki, origin'inizin toplam isteklerin küçük bir kısmını işlemesi ve işlediklerinin gerçekten dinamik olanlar olmasıdır.
WAF: saldırı trafiğini PHP worker'larınızdan uzak tutun
WordPress, web'de en çok saldırıya uğrayan CMS'dir ve bu baskının çoğu otomatiktir: wp-login.php'ye karşı credential-stuffing, XML-RPC amplifikasyonu ve savunmasız eklenti uç noktalarını araştırma. Bir filtre olmadan, bu isteklerin her biri bir PHP worker'ı ve bir dilim veritabanı zamanı tüketir; saldırı hiç başarılı olmasa bile gerçek kullanıcılar için siteyi kötüleştirir. Edge WAF bu trafiği uygulamaya ulaşmadan önce inceler ve filtreler; böylece brute-force ve istismarcı kalıplar edge'de düşer ve worker'larınız gerçek ziyaretçiler için serbest kalır. Bu, bir güvenlik özelliği olduğu kadar bir performans özelliğidir.
Editörlerin asla kafası karışmayacak purge stratejisi
Agresif cache'leme yalnızca editörler ona güvenirse işe yarar. Herkesi memnun eden desen, yayınlamada hedeflenmiş purge'dür: bir gönderi oluşturulduğunda veya güncellendiğinde, o URL'yi ve göründüğü tüm listeleme sayfalarını purge edin; böylece yeni içerik anında canlıyken sitenin geri kalanı cache'te hızlı kalır. Statik varlıklar versiyonlanmalıdır, böylece bir tema veya eklenti güncellemesi tam bir flush gerektirmek yerine doğal olarak yeni URL'ler üretir. Panelden veya cdnctl'den kapsamlı bir değişiklik yaptığınızda tüm bölgeyi de purge edebilirsiniz, ama günlük hedef, bir editörün değişikliğinin neden görünmediğini merak etmesine asla neden olmayan küçük, kesin invalidation'lardır.
Kampanyalara ve haber patlamalarına dayanma
Gerçek sınav, trafiğin uyarı olmadan katlandığı gündür — bir kampanya yayına girer, bir haber alınır, bir bülten ulaşır. Edge cache statik ve cache'lenebilir istekleri emerken, Redis veritabanını korurken ve WAF gereksiz trafiği filtrelerken, origin yalnızca küçük dinamik kalanı görür; böylece site, aksi halde çökecek olan aynı kaynaklarla ayakta ve hızlı kalır. Yönetilen bir yapılandırmadan çok daha büyük bir yığının rahatlığını elde edersiniz ve bunu, öfkeli kullanıcılardan öğrenmek yerine log'lar ve durum üzerinden gerçekleşirken izleyebilirsiniz.
Adım adım nasıl kurulur
WordPress'i yönetilen platformda başlatın veya taşıyın
Panelde bir WordPress uygulaması oluşturun; bu size PHP çalışma zamanını (runtime), kalıcı yükleme depolamasını ve yönetilen bir MySQL veritabanını sağlar. Mevcut bir siteyi taşıyorsanız, dosyalarınızı ve veritabanı dışa aktarımınızı getirin ve uygulamayı bunlara yönlendirin; böylece runtime, veritabanı ve kimlik bilgileri wp-config'i elle düzenlemeden bağlanır.
Yönetilen Redis object cache'i etkinleştirin
Siteye yönetilen Redis'i bağlayın ve object cache drop-in'ini etkinleştirin; böylece WordPress, pahalı sorguların sonuçlarını bellekte saklar. Seçenekler, menüler, terimler ve gönderi meta verileri için tekrarlanan aramalar, her istekte MySQL'i zorlamak yerine Redis'ten yanıtlanır.
Alan adını Auto SSL ile edge üzerinden yönlendirin
Alan adınızı bağlayın, apex ve www'yi doğrulayın ve Auto SSL'in sertifikayı vermesine izin verin. Trafik artık önce cdn.com.tr edge'ine ulaşır; herhangi bir şey WordPress origin'ine iletilmeden önce cache ve WAF politikaları burada uygulanır.
Statik varlıklar için CDN cache'i açın
Görsellerin, CSS'in, JS'in ve fontların origin yerine yakın edge konumlarından sunulması için edge cache'i etkinleştirin. Bu, sayfa ağırlığı için tek başına en büyük ilk kazanımdır ve isteklerin büyük çoğunluğunu PHP'nin tamamen dışına çıkarır.
WAF'ı etkinleştirin
PHP worker'larını tüketmeden önce yaygın saldırı kalıplarını, wp-login.php'ye yönelik brute-force denemelerini ve XML-RPC istismarını filtrelemek için WAF politikalarını açın. Bu, site araştırılırken bile gerçek ziyaretçiler için siteyi duyarlı tutar.
Yayınlamada purge yapılandırın
Editörlerin içerik yayınladığında veya güncellediğinde panelden ya da cdnctl ile cache'i purge etmesini sağlayın; böylece yeni gönderiler anında görünürken geri kalan her şey cache'te kalır. Versiyonlanmış varlıklarla birlikte bu, invalidation'ları tüm siteyi flush etmek yerine hedeflenmiş tutar.
Örnek senaryolar
Son dakika haberleri yoğun şekilde paylaşılır; edge cache ve Redis, editörler yayınladıkları anda hâlâ taze içerik görürken sitenin ani okuyucu artışını emmesini sağlar.
Giriş yapılmış ve sepet sayfaları tam olarak sayfa cache'lenemez, bu yüzden Redis object cache bu dinamik sayfaların ürettiği veritabanı işini keserek yükü taşır.
Standart bir WordPress-artı-Redis-artı-CDN-artı-WAF tarifi her müşteri sitesine uygulanır; böylece performans ve güvenlik proje bazlı tahmin yerine tutarlı olur.
Sıkça sorulan sorular
Ayrıca bir cache eklentisine ihtiyacım var mı?
Ağır işi platform katmanı yapar: Redis object cache'i, CDN ise edge cache'i yönetir. Bir sayfa cache eklentisi buna tamamlayıcı olabilir, ama hepsi tam sayfa cache'leme yapmaya çalışan birden fazla eklentiyi üst üste yığmaktan kaçınmalısınız; bu genellikle çelişen invalidation'lara ve eski sayfalara neden olur.
Cache'leme giriş yapmış kullanıcıları, sepetleri veya ödemeyi bozar mı?
Hayır, çünkü bu sayfalar dinamik olarak ele alınır ve edge'de tam sayfa cache'lenmez. Yine de Redis object cache'ten büyük ölçüde faydalanırlar; bu, bir kullanıcının oturumunu bir başkasına asla sunmadan arkalarındaki veritabanı işini keser.
Redis object cache, CDN cache'ten nasıl farklıdır?
CDN cache, tamamlanmış yanıtları ve varlıkları ziyaretçilere yakın olan edge'de saklar. Redis object cache WordPress'in yanında yaşar ve PHP'nin dinamik sayfaları MySQL'i yeniden sorgulamadan yeniden inşa edebilmesi için iç veritabanı sorgularının sonuçlarını saklar. Sorunun farklı iki yarısını çözerler ve birlikte en güçlüdürler.
Yayınlanmış bir gönderi güncellemeyi göstermiyor. Ne yapmalıyım?
O URL'yi panelden veya cdnctl ile purge edin; edge hâlâ önceden cache'lenmiş kopyayı sunuyor. Editörleriniz için yayınlamada-purge kurmak bunu otomatik hale getirir, böylece yeni ve güncellenmiş gönderiler anında yayına girer.
WAF, meşru eklentileri veya REST API'yi engeller mi?
WAF, normal uygulama trafiği yerine bilinen istismar kalıplarını ve brute-force davranışını hedefler. Meşru yönetim, eklenti ve REST API kullanımı sorunsuz geçer; belirli bir iş akışı bir kuralı tetiklerse, politika kapatılmak yerine ayarlanabilir.
Mevcut WordPress sitemi kesintisiz bunun içine taşıyabilir miyim?
Dosyalarınızı ve bir veritabanı dışa aktarımını yönetilen platforma getirir ve DNS'i değiştirmeden önce siteyi platformda doğrularsınız. Alan adı yalnızca site doğrulandıktan ve Auto SSL hazır olduktan sonra edge'e taşındığından, geçiş penceresi kısa ve düşük risklidir.