Merhaba arkadaşlar, bugün sizlere LiteSpeed Cache kullanan sunucularınızda, mobil ve masaüstü kullanıcıları için ayrı ayrı önbellek oluşturarak verimliliği nasıl artıracağınızı anlatacağım. Bu yöntem, özellikle responsive (duyarlı) tasarıma sahip sitelerde, mobil kullanıcılara masaüstü önbelleğinin gönderilmesi gibi yanlış sunumları engeller ve önbellek isabet oranını (hit ratio) ciddi anlamda yükseltir. Benim yönettiğim yüksek trafikli sunucularda bu ayarı yapmak, önbellek boyutunu daha verimli kullanmamı ve kullanıcı deneyimini iyileştirmemi sağladı.
Neden Device-Based Vary Kullanmalıyız?
LiteSpeed Web Server (LSWS) ve eklentileri (LSMCD, LSCache) varsayılan olarak, bir sayfanın önbelleğe alınmış halini tüm kullanıcılara aynı şekilde sunar. Ancak, siteniz mobil cihazlarda farklı bir HTML/CSS yapısı gösteriyorsa (örneğin, bazı bileşenleri gizliyorsa veya menü yapısı değişiyorsa), masaüstünden gelen bir önbellek mobil kullanıcıya uygun olmayacaktır. "Device-Based Vary" özelliği, tarayıcının User-Agent bilgisini kontrol ederek, mobil ve masaüstü için iki ayrı önbellek kopyası oluşturur ve doğru olanı ilgili cihaza servis eder. Bu, önbellek şişmesini de engeller.
LiteSpeed Web Server Yapılandırması
İlk adım, LiteSpeed Web Server seviyesinde bu özelliği etkinleştirmek. Eğer WHM/cPanel veya DirectAdmin kullanıyorsanız, LiteSpeed Web Server yönetim panelinden (WebAdmin Konsolu) bu ayara ulaşabilirsiniz.
Yukarıdaki yapılandırma, User-Agent string'inde "mobile" veya "tablet" geçen istekleri ayrı önbelleklere yönlendirir. Bu ayarı genellikle sunucu genelinde veya sanal host (vhost) seviyesinde yapabilirsiniz. Ben, performans izleme araçlarımda daha net ayrım görebilmek için sadece "mobile" varyasyonunu kullanmayı tercih ediyorum.
.htaccess ile Vary Ayarlarını Tanımlama
Sunucu genelinde bir değişiklik yapamıyorsanız veya sadece belirli bir siteniz için bu ayrımı yapmak istiyorsanız, WordPress LSCache eklentisi veya doğrudan `.htaccess` dosyası üzerinden de kurallar ekleyebilirsiniz. Aşağıdaki kodu sitenizin kök dizinindeki `.htaccess` dosyasına ekleyin.
Bu kural, User-Agent'ı kontrol eder ve mobil cihazlardan gelen isteklere `vary=ismobile` adında bir ortam değişkeni (environment variable) ekler. LiteSpeed, bu değişkene göre ayrı bir önbellek oluşturacaktır. Buradaki regex kuralını, trafiğinize göre özelleştirebilirsiniz. Benim sunucularda genelde bu liste iş görüyor.
Dikkat Edilmesi Gerekenler ve Optimizasyon
Bu yöntemi uygularken birkaç kritik noktaya dikkat etmelisiniz. Öncelikle, önbellek depolama alanınızın (storage) yeterli olduğundan emin olun. Çünkü her sayfa için iki farklı önbellek oluşacağından, disk kullanımı yaklaşık iki katına çıkabilir. Ancak, önbellek isabet oranındaki artış ve gereksiz önbellek çökmelerinin (cache miss) önlenmesi, bu maliyete değer.
İkinci önemli nokta, LSMCD (LiteSpeed Memcached) kullanıyorsanız, bellek ayırımını gözden geçirmeniz. Mobil varyasyonu da eklenince önbellek anahtarı (cache key) değişeceği için, eski önbellekler geçersiz sayılmayabilir. Temiz bir başlangıç için, ayarı yaptıktan sonra önbelleği tamamen temizlemek (`Purge All`), sorunsuz bir geçiş sağlayacaktır.
Performans Testi ve Sonuçlar
Ayarları yaptıktan sonra, LiteSpeed Web Server istatistiklerinizi veya real-time monitorünüzü kontrol edin. "Cache Vary" istatistiklerinde mobil ve masaüstü isteklerin ayrı ayrı önbelleklenip önbellekten sunulduğunu göreceksiniz. Ayrıca, Google PageSpeed Insights veya GTmetrix gibi araçlarla mobil ve masaüstü sayfalarınızı ayrı ayrı test ederek, doğru içeriğin sunulduğundan emin olun.
Sonuç olarak, bu basit ama etkili ayar, özellikle mobil trafiği yüksek sitelerde kullanıcı deneyimini doğrudan iyileştirir ve sunucu yükünü azaltır. Siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? Farklı varyasyon kuralları (örneğin coğrafi lokasyona göre) deneyen var mı? Aklınıza takılan veya eklemek istediğiniz bir nokta olursa, aşağıya yorum olarak yazabilirsiniz. Hep birlikte öğrenelim.
LiteSpeed Web Server (LSWS) ve eklentileri (LSMCD, LSCache) varsayılan olarak, bir sayfanın önbelleğe alınmış halini tüm kullanıcılara aynı şekilde sunar. Ancak, siteniz mobil cihazlarda farklı bir HTML/CSS yapısı gösteriyorsa (örneğin, bazı bileşenleri gizliyorsa veya menü yapısı değişiyorsa), masaüstünden gelen bir önbellek mobil kullanıcıya uygun olmayacaktır. "Device-Based Vary" özelliği, tarayıcının User-Agent bilgisini kontrol ederek, mobil ve masaüstü için iki ayrı önbellek kopyası oluşturur ve doğru olanı ilgili cihaza servis eder. Bu, önbellek şişmesini de engeller.
İlk adım, LiteSpeed Web Server seviyesinde bu özelliği etkinleştirmek. Eğer WHM/cPanel veya DirectAdmin kullanıyorsanız, LiteSpeed Web Server yönetim panelinden (WebAdmin Konsolu) bu ayara ulaşabilirsiniz.
NGINX:
cacheVary user-agent:mobile
cacheVary user-agent:tablet
Yukarıdaki yapılandırma, User-Agent string'inde "mobile" veya "tablet" geçen istekleri ayrı önbelleklere yönlendirir. Bu ayarı genellikle sunucu genelinde veya sanal host (vhost) seviyesinde yapabilirsiniz. Ben, performans izleme araçlarımda daha net ayrım görebilmek için sadece "mobile" varyasyonunu kullanmayı tercih ediyorum.
Sunucu genelinde bir değişiklik yapamıyorsanız veya sadece belirli bir siteniz için bu ayrımı yapmak istiyorsanız, WordPress LSCache eklentisi veya doğrudan `.htaccess` dosyası üzerinden de kurallar ekleyebilirsiniz. Aşağıdaki kodu sitenizin kök dizinindeki `.htaccess` dosyasına ekleyin.
Kod:
<IfModule LiteSpeed>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Mobile|Android|Silk/|Kindle|BlackBerry|Opera\ Mini|Opera\ Mobi [NC]
RewriteRule . - [E=Cache-Control:vary=ismobile]
</IfModule>
Bu kural, User-Agent'ı kontrol eder ve mobil cihazlardan gelen isteklere `vary=ismobile` adında bir ortam değişkeni (environment variable) ekler. LiteSpeed, bu değişkene göre ayrı bir önbellek oluşturacaktır. Buradaki regex kuralını, trafiğinize göre özelleştirebilirsiniz. Benim sunucularda genelde bu liste iş görüyor.
Bu yöntemi uygularken birkaç kritik noktaya dikkat etmelisiniz. Öncelikle, önbellek depolama alanınızın (storage) yeterli olduğundan emin olun. Çünkü her sayfa için iki farklı önbellek oluşacağından, disk kullanımı yaklaşık iki katına çıkabilir. Ancak, önbellek isabet oranındaki artış ve gereksiz önbellek çökmelerinin (cache miss) önlenmesi, bu maliyete değer.
İkinci önemli nokta, LSMCD (LiteSpeed Memcached) kullanıyorsanız, bellek ayırımını gözden geçirmeniz. Mobil varyasyonu da eklenince önbellek anahtarı (cache key) değişeceği için, eski önbellekler geçersiz sayılmayabilir. Temiz bir başlangıç için, ayarı yaptıktan sonra önbelleği tamamen temizlemek (`Purge All`), sorunsuz bir geçiş sağlayacaktır.
Ayarları yaptıktan sonra, LiteSpeed Web Server istatistiklerinizi veya real-time monitorünüzü kontrol edin. "Cache Vary" istatistiklerinde mobil ve masaüstü isteklerin ayrı ayrı önbelleklenip önbellekten sunulduğunu göreceksiniz. Ayrıca, Google PageSpeed Insights veya GTmetrix gibi araçlarla mobil ve masaüstü sayfalarınızı ayrı ayrı test ederek, doğru içeriğin sunulduğundan emin olun.
Sonuç olarak, bu basit ama etkili ayar, özellikle mobil trafiği yüksek sitelerde kullanıcı deneyimini doğrudan iyileştirir ve sunucu yükünü azaltır. Siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? Farklı varyasyon kuralları (örneğin coğrafi lokasyona göre) deneyen var mı? Aklınıza takılan veya eklemek istediğiniz bir nokta olursa, aşağıya yorum olarak yazabilirsiniz. Hep birlikte öğrenelim.