Query string ve Host Header cache anahtarına dahil mi; bunu değiştirebilir miyim?
Kısa cevap
Evet, ikisi de dahildir; varsayılan önbellek anahtarı Host + yol + sorgu dizesidir. Cache profilinde Ignore Host Header açılırsa Host, Ignore Query açılırsa sorgu dizesi anahtardan çıkar. Dynamic Caching açılırsa Key listesinde seçilen değerler (ör. dil ya da çerez) anahtarın sonuna eklenir.
Nasıl Çalışır?
Önbellek, gelen isteğin anahtarını daha önce saklanmış kopyaların anahtarlarıyla karşılaştırır; anahtar aynıysa saklanmış yanıt sunulur. Anahtardan bir parça çıkarıldığında o parçası farklı olan istekler aynı kopyayı paylaşır.
| Ayar | Anahtar | Örnek: aynı kopyayı alan istekler |
|---|---|---|
| Varsayılan | Host + yol + sorgu dizesi | Yalnızca birebir aynı adres |
| Ignore Host Header açık | Yol + sorgu dizesi | www.example.com/logo.png ve cdn.example.com/logo.png |
| Ignore query açık | Host + yol | /app.css?v=1 ve /app.css?v=2 |
| İkisi de açık | Yol | Farklı alan adı ve sorgu dizesiyle aynı yol |
| Dynamic caching açık | Yukarıdaki anahtar + Key değerleri | Aynı adres ve aynı Key değerleri |
HTTP yöntemi, çerezler ve Accept-Language gibi başlıklar varsayılan anahtarda yoktur; gerekiyorsa Dynamic caching ile eklenir (Dynamic Caching nedir, ne zaman kullanılmalı?).
TR7'de Önbellek Anahtarı
- Nerede: Load Balancer → Profiles → Cache → profil satırına sağ tık → Edit → Ignore Host Header ve/veya Ignore Query anahtarı açılır → Save. İki seçenek de varsayılan olarak kapalıdır.
- Değişikliğin etkisi: Kayıt açık bağlantılar kopmadan uygulanır; önbellekteki kopyalar silinir (önerilen değerler). Profil birden çok vService'te kullanılıyorsa değişiklik hepsine yansır (Used in sekmesi). Cluster'da varsayılan auto-sync ile eş cihaza da gönderilir; Manual Sync Mode açıksa Synchronize ile gönderilir.
- WEB-CLI:
lb cache update id <kimlik> --ignoreQuery trueve--ignoreHost truealanları kullanılır (eşleştirme ölçütünü gevşeten alanlar). - Doğrulama: Ignore query kapalıyken
curl -s -o /dev/null -D - "https://www.example.com/app.css?v=1"ve ardından?v=2istendiğinde ikinci istekTRCACHE: MISSalır; açıkkenTRCACHE: HITalır. - Ne zaman açılır: Ignore query yalnızca sorgu dizesinden bağımsız statik dosyalar önbelleğe alınıyorsa; Ignore Host Header yalnızca birden fazla alan adı aynı içeriği sunuyorsa.
Sık Karıştırılan Noktalar
- "Ignore query yalnızca isabet oranını artırır." Farklı sorgu dizeleri aynı yanıtı alır;
?id=1ve?id=2gibi dinamik sayfalarda yanlış içerik sunulur. - "
?v=2her zaman önbelleği yeniler." Ignore query açıkken sürüm parametresi anahtara girmez ve eski kopya sunulmaya devam eder (Uygulama güncellemesinden sonra eski içerik gelmeye devam ediyor; ne yapmalıyım?). - "Dynamic caching anahtarın yerine geçer." Seçilen değerler URL'nin yerine değil, sonuna eklenir.
- "Ignore request headers ve Ignore response headers da anahtarı değiştirir." Bu iki seçenek anahtarı değil, isteğin ve yanıtın önbelleğe uygunluk denetimini etkiler.
Dokümantasyonda nasıl yapılır
