我正在尝试为某个页面的 Varnish 缓存设置 100 天 = 144000m ttl,但我发现 Varnish 正在清除缓存页面。
那么问题是我可以设置的最大 ttl 是多少
if ((req.url ~ "\.(html)$") && (beresp.ttl > 0s)) {
unset beresp.http.cache-control;
unset beresp.http.expires;
unset beresp.http.cookie;
set beresp.do_gzip = true;
set beresp.http.Cache-Control = "public, max-age=14411, s-maxage=14411";
remove beresp.http.Pragma;
set beresp.ttl = 144000m;
return(deliver);
答案1
ttl
内部是一个浮点数,其中 0 表示 UNIX 纪元。它通常可以存储最多 3.402823e+38 左右,相当于 10^31 年左右,不过,如果离纪元较远,精度会有所损失。
如果页面从缓存中被逐出,我会将其视为被删除(“LRU nuked” varnishstat
)。您可能还想将 100 天写为“100d”,而不是计算分钟数。