
Sunucu yükünü azaltmanın en ucuz yolu, isteğin sunucunuza hiç ulaşmamasıdır. Önbellek katmanları tam olarak bunu yapar: aynı içeriği tekrar tekrar üretmek yerine hazır sonucu sunar. Doğru kurulduğunda etkisi donanım yükseltmesinden büyüktür ve maliyeti kıyaslanamayacak kadar düşüktür.
Bu rehber, bir sanal sunucu önündeki önbellek katmanlarını sırayla ele alıyor — hangisi ne kadar kazandırır, hangi içerik hangi katmanda tutulur.
Dört Katman, Dört Farklı Kazanç
Bir isteğin yolculuğunu tersten düşünün. Her katman, isteği bir öncekine ulaşmadan karşılayabilirse kazanç artar:
| Katman | Neyi tutar | Kazanç |
|---|---|---|
| 1. Tarayıcı önbelleği | Statik dosyalar | İstek hiç ağa çıkmaz — en yüksek kazanç |
| 2. Dağıtım ağı (CDN) | Statik dosyalar, bazen sayfalar | İstek sunucunuza ulaşmaz |
| 3. Sayfa önbelleği | Üretilmiş HTML | Uygulama ve veritabanı hiç çalışmaz |
| 4. Nesne önbelleği | Sorgu sonuçları | Tekrar eden sorgular diske gitmez |
Katmanlar birbirinin alternatifi değildir. Dağıtım ağı statik dosyaları alır, sayfa önbelleği dinamik sayfaları, nesne önbelleği ise önbelleğe alınamayan sayfalardaki sorguları hafifletir.
Katman 1: Tarayıcı Önbelleği
En ucuz ve en çok atlanan katman. Statik dosyalara uzun ömürlü önbellek başlığı tanımlarsanız, tekrar eden ziyaretlerde tarayıcı o dosyaları hiç istemez.
Buradaki klasik korku şudur: "Uzun önbellek koyarsam, dosyayı güncellediğimde ziyaretçi eskisini görür." Çözüm sürümlü dosya adı kullanmaktır — dosya adına bir sürüm veya içerik özeti ekleyin. İçerik değiştiğinde ad da değişir, tarayıcı yeni adı yeni dosya olarak görür ve indirir. Böylece hem uzun önbellek hem anında güncelleme elde edersiniz.
Katman 2: Dağıtım Ağı
Dağıtım ağı, statik içeriğinizin kopyalarını dünyaya yayılmış sunucularda tutar ve ziyaretçiye en yakın olandan sunar. İki kazanç sağlar: sunucunuzun bant genişliği ve istek yükü düşer, ziyaretçi için gecikme azalır.
Neyi Taşımalı?
- Kesinlikle: Görseller, video, stil dosyaları, betikler, yazı tipleri, indirilebilir dosyalar. Çoğu sitede toplam trafiğin büyük bölümü bunlardır.
- Duruma göre: Herkese aynı görünen HTML sayfaları — blog yazıları, kategori sayfaları. Bu, dağıtım ağının en güçlü kullanımıdır ama önbellek temizleme kurallarını doğru kurmayı gerektirir.
- Asla: Kullanıcıya özel sayfalar. Sepet, hesabım, panel. Bunlar önbelleğe alınırsa bir kullanıcı başkasının verisini görebilir — bu, önbellek yapılandırmasında yapılabilecek en ciddi hatadır.
Gerçek Ziyaretçi IP'si
Dağıtım ağı devreye girdiğinde tüm istekler onun sunucularından geliyormuş gibi görünür. Gerçek ziyaretçi IP'sinin iletilmesini yapılandırmazsanız erişim loglarınız anlamsızlaşır, bot analizi yapamazsınız ve IP tabanlı engelleme kuralları yanlış çalışır. Kurulumda atlanmaması gereken adım budur.
Katman 3: Sayfa Önbelleği
Sunucu tarafında en yüksek getirili katman. Her istekte sıfırdan üretilen bir sayfa, sunucunuzun en pahalı işidir: uygulama başlar, onlarca sorgu çalışır, şablon işlenir. Sayfa önbelleği bu zincirin tamamını atlar.
Kritik olan iki karar vardır:
Ne önbelleğe alınacak? Giriş yapmamış ziyaretçiye gösterilen her sayfa adaydır. Giriş yapmış kullanıcılar, sepeti dolu ziyaretçiler ve form gönderim sonuçları dışarıda kalmalıdır.
Ne zaman temizlenecek? Önbellek sorunlarının neredeyse tamamı bu kuraldan çıkar. İçerik güncellendiğinde ilgili sayfaların önbelleği temizlenmelidir — yalnızca o yazının sayfası değil, o yazının göründüğü liste ve kategori sayfaları da. Temizleme kuralı kurulmadan yapılan bir önbellek kurulumu, "yeni yazı sitede görünmüyor" şikayeti üretir.
Katman 4: Nesne Önbelleği
Sayfa önbelleğinin devre dışı kaldığı yerlerde — giriş yapmış kullanıcılar, sepet, panel — devreye girer. Tekrar eden veritabanı sorgularının sonucunu bellekte tutar; aynı sorgu her istekte yeniden çalışmaz.
Bellek tabanlı bir depo kullanır ve kurulumu basittir. E-ticaret gibi kişiselleştirilmiş sayfaların ağırlıklı olduğu sitelerde en çok fark yaratan katman budur, çünkü orada sayfa önbelleği kullanılamaz.
Etkiyi Ölçmek
Her katmanı kurduktan sonra ölçün — tahmin etmeyin:
- Önbellek isabet oranı: İsteklerin yüzde kaçı önbellekten karşılanıyor? Düşükse önbellek kuralları çok dar tanımlanmış olabilir.
- Sunucu yükü: Önbellek öncesi ve sonrası CPU/bellek kullanımını karşılaştırın.
- Sunucuya ulaşan istek sayısı: Dağıtım ağı kurulduysa bu sayı belirgin biçimde düşmelidir. Düşmüyorsa yapılandırma çalışmıyor demektir.
- İlk bayt süresi: Sayfa önbelleğinin etkisi burada en net görünür.
Sonuç
Önbellek katmanları, sunucu kaynağı satın almadan performans kazanmanın en verimli yoludur. Kurulum sırası nettir: tarayıcı önbelleği ve sürümlü dosya adları en ucuz kazancı verir, sayfa önbelleği sunucu yükünü en çok düşürür, dağıtım ağı bant genişliğini ve gecikmeyi çözer, nesne önbelleği ise kişiselleştirilmiş sayfaları hızlandırır. Kaynakların size ayrıldığı bir VDS sunucu ortamında dördünü de kurabilirsiniz — ve dördü kurulduğunda aynı donanım kat kat fazla ziyaretçi taşır. Tek dikkat noktası: kullanıcıya özel sayfaları asla önbelleğe almayın.
Sıkça Sorulan Sorular (SSS)
Küçük bir site için dağıtım ağı gerekli mi?
Ziyaretçileriniz tek bir coğrafyadaysa ve trafik düşükse kazanç sınırlıdır. Görsel ağırlıklı bir siteniz varsa veya farklı ülkelerden ziyaretçi alıyorsanız getirisi hızla artar. Önce sayfa önbelleğini kurun; dağıtım ağı bir sonraki adımdır.
Önbellek yüzünden ziyaretçiler eski içerik görür mü?
Temizleme kuralı doğru kurulduysa hayır. Sorun genellikle önbelleğin kendisinden değil, içerik güncellendiğinde ilgili sayfaların temizlenmemesinden çıkar. Kurulumda en çok emek verilmesi gereken kısım burasıdır.
E-ticaret sitesinde önbellek kullanabilir miyim?
Evet, ama seçici olarak. Ürün listeleri ve kategori sayfaları önbelleğe alınabilir; sepet, ödeme ve hesap sayfaları kesinlikle alınmamalıdır. Bu ayrım yanlış yapıldığında bir kullanıcı başkasının sepetini görebilir.
Hangi katmandan başlamalıyım?
Tarayıcı önbelleği ve sıkıştırma — dakikalar sürer, hiçbir risk taşımaz. Sonra sayfa önbelleği: sunucu yükünde en büyük düşüşü o sağlar. Dağıtım ağı ve nesne önbelleği, ihtiyaca göre sonraki adımlardır.