वार्निश कैश - डिफ़ॉल्ट टीटीएल?


23

मुझे पता चला है कि मैं अपनी वीसीएल फ़ाइल में निम्नानुसार टीटीएल को वार्निश में सेट कर सकता हूं:

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

लेकिन डिफ़ॉल्ट सेटिंग क्या है (बैकेंड सर्वर मान रहा है कि कोई कैश-कंट्रोल हेडर नहीं है)?


ऐसा लगता है कि मुझे उत्तर मिल गया है: 120 सेकंड - यह डिफ़ॉल्ट वीसीएल तर्क में है।
Ade

जवाबों:


24

यह डिफ़ॉल्ट टेम्पलेट में है:

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);
}

तो, 120 सेकंड।


आपको डिफ़ॉल्ट टेम्पलेट कहां मिला?
नील


वहाँ एक default.vcl है कि वार्निश के साथ जहाज कम से कम 3.0.3 के रूप में है, जिसमें सभी डिफ़ॉल्ट कॉन्फ़िगरेशन सबरूटीन्स हैं जो इसमें टिप्पणी करते हैं। 4.0 डिफ़ॉल्ट कॉन्फिग को यहां देखा जा सकता है: github.com/mattiasgeniar/varnish-4.0-configuration-templates/…
th3morg

2
यह मेरी टिप्पणियों को प्रतिबिंबित नहीं करता है। यह सच है कि डिफ़ॉल्ट ttl 120 सेकंड है, लेकिन इस संख्या का स्रोत उस स्निपेट नहीं हो सकता है। यदि ऐसा होता, तो बिना ttl वाली वस्तुओं को hit_for_pass के रूप में चिह्नित किया जाता, लेकिन वे वास्तव में 120 सेकंड के लिए कैश में रहती हैं।
क्रिटेज़फ़िट्ज़

आपको यहाँ बिल्ट vcl का स्रोत मिलेगा - github.com/varnishcache/varnish-cache/blob/master/bin/varnishd/…varnish-<version>अपनी वार्निश रिलीज़ के लिए संस्करण देखने के लिए टैग का उपयोग करें ।
डैनी थॉमस

34

डिफॉल्ट TTL को -tकमांडलाइन स्विच के माध्यम से वार्निश कमांड से गुजारा जा सकता है और संभवत: आपके फाइल सिस्टम पर एक प्रॉपर्टी फाइल से सॉर्ट किया गया है । CentOS सिस्टम पर मैं देख रहा हूँ कि यह किसके उपयोग DEFAULT_TTLसे सेट है /etc/sysconfig/varnish

आप इस तरह के varnishadm का उपयोग कर लाइव सेटिंग देख सकते हैं,

varnishadm param.show default_ttl

दरअसल, डिफ़ॉल्ट VCL लॉजिक का पालन न करने योग्य वस्तुओं से संबंधित है।

  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);
  }

इसका मतलब है "यदि ऑब्जेक्ट अस्वीकार्य नहीं है - इस ऑब्जेक्ट के लिए क्लाइंट अनुरोधों को सीधे और एक साथ 2 मिनट के लिए वापस भेजने के लिए, पास न करें"

Https://stackoverflow.com/questions/12691489/varnish-hit-for-pass-means पर अधिक पढ़ें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.