Я смущен о том, где установить время отсрочки в лаке 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);
}
}
этого правильный подход?