似乎有十几页内容告诉您如何设置文件的“过期”标头,但实际上没有一个是正确的。
现在,我的 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,但确实如此。帮忙吗?
答案1
那么如何设置缓存控制标头呢?
set beresp.http.cache-control = "max-age = 3600";
如果您的浏览器看不到该标头,则可能倾向于每次都请求该对象。希望这能有所帮助。