3
我感到困惑在哪里设置在清漆4.宽限时间我见过例如VCL的设置宽限时间vcl_recv清漆4宽限时间取决于后端健康
sub vcl_recv {
...
set req.http.grace = 60m;
...
}
其他设置在vcl_hit
sub vcl_hit {
...
set obj.grace = 60m;
...
}
及文档中(https://www.varnish-cache.org/docs/4.0/users-guide/vcl-grace.html)它们在vcl_backend_response设置
sub vcl_backend_response {
...
set beresp.grace = 60m;
...
}
我也看到了其中宽限时间在vcl_recv和vcl_backend_response设置两个例子。
任何人都可以请解释为什么要设置它在一个特定的地方?
在实践中,我想设置宽限时间取决于后端是否被认为是健康的;凭直觉我把它清漆接触后端以前,所以我设定的宽限时间在vcl_recv,并决定是否从高速缓存服务器vcl_hit这样的:
sub vcl_recv {
...
if (std.healthy(req.backend_hint)) {
set req.http.grace = 2m;
} else {
set req.http.grace = 60m;
}
...
}
sub vcl_hit {
if (obj.ttl >= 0s) {
# A standard hit, deliver from cache
return (deliver);
}
elsif (obj.ttl + obj.grace > 0s) {
# page expired, serve from cache in the meantime
return (deliver);
} else {
return (fetch);
}
}
是这个正确的做法?