Cache

有人可以分享他們的 Varnish VCL 以設置將來過期嗎?

  • August 16, 2010

似乎有十幾個頁面告訴您如何設置文件的“過期”標題,但實際上沒有一個是正確的。

現在,我的 VCL 是:

if (req.url ~ "^/media/") {
   set beresp.ttl = 3600s;
   set beresp.http.expires = beresp.ttl;
   set beresp.http.age = "0";
   unset beresp.http.set-cookie;
}

並且瀏覽器會為每個請求不斷重新請求 /media/ 下的文件。有人可以分享一個 VCL 片段,它實際上會告訴瀏覽器記憶體對象,只要 Varnish 做,而不是每次都重新請求它嗎?

我的響應標題是:

Server Apache/2.2.14 (Ubuntu)
Last-Modified Sun, 15 Aug 2010 22:26:50 GMT
Etag "141d8-184e-48de4364e3e80"
Vary Accept-Encoding
Content-Encoding gzip
Content-Type text/css
Expires 3600.000
Content-Length 1802
Date Mon, 16 Aug 2010 12:16:48 GMT
X-Varnish 808143209 808142052
Age 2184
Via 1.1 varnish
Connection keep-alive

我不確定哪個標頭每次都使瀏覽器請求 CSS,但確實如此。幫助?

設置記憶體控制標頭怎麼樣?

set beresp.http.cache-control = "max-age = 3600";

如果您的瀏覽器沒有看到該標頭,則它可能傾向於每次都請求該對象。希望這可以幫助。

引用自:https://serverfault.com/questions/170944