有人可以分享他们的 Varnish VCL 来设置将来的过期时间吗?

有人可以分享他们的 Varnish VCL 来设置将来的过期时间吗?

似乎有十几页内容告诉您如何设置文件的“过期”标头,但实际上没有一个是正确的。

现在,我的 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";

如果您的浏览器看不到该标头,则可能倾向于每次都请求该对象。希望这能有所帮助。

相关内容