Ade*_*Ade 24 cache varnish ttl
我发现我可以在 VCL 文件中按如下方式在 Varnish 中设置 TTL:
sub vcl_fetch {
# 1 minute
set obj.ttl = 1m;
}
Run Code Online (Sandbox Code Playgroud)
但是默认设置是什么(假设后端服务器没有设置缓存控制标头)?
小智 34
默认 TTL 可以通过命令-t
行开关通过 varnishd 命令传递,并且可能来自文件系统上的属性文件。在 CentOS 系统上,我正在查看它是使用DEFAULT_TTL
from设置的/etc/sysconfig/varnish
。
您可以像这样使用 varnishadm 查看实时设置,
varnishadm param.show default_ttl
Run Code Online (Sandbox Code Playgroud)
实际上,遵循默认的 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);
}
Run Code Online (Sandbox Code Playgroud)
意思是“如果对象不可缓存 - 将此对象的客户端请求直接并同时传递到后端 2 分钟,不要将它们排队”
Bar*_*Vos 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);
}
Run Code Online (Sandbox Code Playgroud)
所以,120 秒。
归档时间: |
|
查看次数: |
33374 次 |
最近记录: |