Vernik Önbelleği - varsayılan TTL?


23

VCL dosyamda TTL'yi Varnish olarak ayarlayabileceğimi öğrendim:

sub vcl_fetch {
    # 1 minute
    set obj.ttl = 1m;
}

Ancak, varsayılan ayar nedir (arka uç sunucunun önbellek denetimi üstbilgisi ayarlanmadığı varsayılarak)?


Cevabını buldum gibi görünüyor: 120 saniye - bu varsayılan VCL mantığında.
Ade,

Yanıtlar:


24

Bu varsayılan şablonda:

sub vcl_fetch {
    if (beresp.ttl <= 0s ||
        beresp.http.Set-Cookie ||
        beresp.http.Vary == "*") {
                /*
                 * Mark as "Hit-For-Pass" for the next 2 minutes
                 */
                set beresp.ttl = 120 s;
                return (hit_for_pass);
    }
    return (deliver);
}

Yani, 120 saniye.


Varsayılan şablonu nerede buldunuz?
Neil


Varsayılan yapılandırma alt yordamlarının hepsine sahip olan ve en az 3.0.3'ten itibaren vernikle birlikte gönderilen bir default.vcl vardır. 4.0 varsayılan konfigürasyon burada görülebilir: github.com/mattiasgeniar/varnish-4.0-configuration-templates/…
th3morg 7:15

2
Bu benim gözlemlerimi yansıtmıyor. Varsayılan ttl'nin 120 saniye olduğu doğrudur, ancak bu sayının kaynağı bu snippet olamaz. Öyle olsaydı, ttl olmayan nesneler hit_for_pass olarak işaretlenir, ancak gerçekte önbellekte 120 saniye kalırlar.
Kritzefitz

Yerleşik vcl kaynağını burada bulabilirsiniz - github.com/varnishcache/varnish-cache/blob/master/bin/varnishd/… . varnish-<version>Vernik sürümünüzün sürümünü görmek için etiketleri kullanın .
Danny Thomas

34

Varsayılan TTL, vernik komutuyla -tkomut satırı anahtarı üzerinden geçirilebilir ve muhtemelen dosya sisteminizdeki bir özellik dosyasından kaynaklanır. O kullanılarak ayarlanır en CentOS sistemde Bakıyorum DEFAULT_TTLdan /etc/sysconfig/varnish.

Varnishadm kullanarak canlı ayarı görebilirsiniz,

varnishadm param.show default_ttl

Aslında, varsayılan VCL mantığının izlenmesi, önbelleklenemez nesnelerle ilgilidir.

  sub vcl_fetch {
      if (beresp.ttl <= 0s ||
          beresp.http.Set-Cookie ||
          beresp.http.Vary == "*") {
                  /*
                   * Mark as "Hit-For-Pass" for the next 2 minutes
                   */
                  set beresp.ttl = 120 s;
                  return (hit_for_pass);
      }
      return (deliver);
  }

"nesne önbelleğe alınamıyorsa - bu nesnenin doğrudan ve aynı anda 2 dakika boyunca aynı anda yeniden gönderilmesi için istemci isteklerini iletin, sıraya almayın" anlamına gelir.

Https://stackoverflow.com/questions/12691489/varnish-hit-for-pass-means adresinde daha fazla bilgi alabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.