Я не могу понять, для жизни меня, как получить лак, чтобы игнорировать кеширование 500 внутренних ошибок сервера. В принципе, если кто-то ударяет лак и возвращается ошибка внутреннего внутреннего сервера, я хочу, чтобы лак не кэшировал эту страницу (установите 0s ttl/grace period?). Я использую лак 3.0.3, и вот мой VCL. По умолчанию я хочу кэшировать страницы в течение 30 дней.Как НЕ кэшировать 500 внутренних ошибок сервера в лаке
sub vcl_fetch {
# Set 30-day TTL
set beresp.ttl = 2592000 s;
set beresp.grace = 15d; /* The max amount of time to keep object in cache */
if (beresp.status == 301 || beresp.status == 302) {
return (hit_for_pass);
}
# Serve pages from the cache should we get a sudden error and re-check in one minute
if (beresp.status >= 500) {
set beresp.grace = 1s;
set beresp.ttl = 1s;
return (hit_for_pass);
}
# Unset the "etag" header (suggested)
unset beresp.http.etag;
return(deliver);
}
Итак, на английском языке: если возвращается 500 внутренних серверов ... X-CACHE должен показать MISS. Когда я обновляю страницу, если это еще 500 внутренних серверов, тогда она должна снова показать MISS. Если страница успешно доставлена, она должна отображать HIT.
Хм ... Я не понимают, почему Лак будет кэшировать ошибку 404. Мы были сожжены этим - ресурс восстанавливается, но пользователь этого не видит. – Leonid
@Leonid, 404, как правило, кэшируется обратными прокси-серверами, поскольку он не указывает на неисправность восходящего сервера: скорее, запрос был получен и обработан правильно, но запрошенный ресурс не существует. – mickeybob