Varnish Hakkında Bazı Sorular

Bir İstek Ne Zaman Önbelleğe Alınabilir?

Varnish bir istek aldığında, cevabın önbelleğe alınıp alınmayacağını veya önbellekten verilip verilemeyeceğine karar vermesi gerekir. Aşağıdaki durumlarda bir istek önbelleğe alınabilir:

  • İstek tipi GET veya HEAD'dir

  • İstemci tarafından Cookie gönderilmezse.

  • Authorization başlığı gönderilmezse.

Bu ölçütler karşılandığında, Varnish, isteği önbellekte arayacak ve karar verecek.

Varnish bir Nesneyi Nasıl Belirler?

Bir nesnenin önbelleğe alınabileceğine karar verdiğimizde, nesneyi önbellekten almak için tanımlamak için bir yola ihtiyacımız var. Bir karma anahtarı, benzersiz bir tanımlayıcı işlevi gören çeşitli değerlerden oluşur.

  1. İstek bir Hostname başlığı içeriyorsa, Hostname adı karma değere eklenir.

  2. Aksi takdirde, IP adresi karma değerine eklenecektir.

  3. İsteğin URL'si karma değerine eklenir.

Bu değerlere dayanarak, Varnish nesneyi önbellekten alır.

Varnish Bir Nesneyi Ne Zaman Önbelleğe Alır?

Bir nesne önbellekte saklanmazsa veya eski olduğu kabul edilirse, arka uç bağlantısı yapılır. Arka uç yanıtına dayanarak, Varnish, döndürülen nesnenin önbellekte saklanıp saklanmayacağına veya önbelleğin atlanıp atılmayacağına karar verir. Ne zaman önbellekte saklanır:

  1. Yaşama süresi (TTL) sıfırdan fazladır.

  2. Yanıt, bir Set-Cookie başlığı içermiyor.

  3. Cache-Control başlığı, no-cache, no-store veya private içermiyor ise.

  4. Vary başlık * içermiyorsa, yani tüm başlıkları kapsamıyorsa.

Varnish Bir Nesneyi Ne Kadar Tutar?

Bir nesne önbellekte saklandığında, yaşam süresi konusunda karar verilmelidir. Bundan daha önce bahsetmiştik, ancak Varnish'in hangi değeri TTL olarak kullanacağına karar vermek için kullandığı bir öncelik listesi var. Öncelikli liste:

  1. VCL'de beresp.ttl ayarlanmışsa, bu değeri kullanım süresi olarak kullanır.

  2. Cache-control başlığında bir s-maxage ifadesi var mı?

  3. Önbellek kontrolü başlığında bir max-age ifadesi var mı?.

  4. Expires başlığı var mı?

Nesne geçiş için önbellekte saklandığında, VCL'deki değeri değiştirmediğiniz sürece, 120 saniye boyunca önbellekte saklanır.

Last updated