proxy_cache_revalidate
Директива `proxy_cache_revalidate` управляет тем, будет ли NGINX повторно проверять записи кэша у origin server перед отдачей их клиентам.
Описание
Когда включена, директива proxy_cache_revalidate заставляет NGINX отправлять условный запрос на upstream server для повторной проверки записей кэша при наличии просроченного кэша. Валидация выполняется путём отправки заголовка If-Modified-Since или If-None-Match вместе с запросами, что сообщает origin server проверить, был ли изменён кэшируемый ресурс с момента его последнего получения.
Это поведение особенно полезно для обеспечения того, чтобы клиенты получали наиболее актуальные версии ресурсов при отдаче кэшированного содержимого. Если upstream server отвечает, что ресурс не изменился (HTTP 304 Not Modified), NGINX отдает клиенту устаревшую кэшированную версию. Если ресурс изменился, NGINX получает новую версию и соответствующим образом обновляет свой кэш.
Важно использовать эту директиву в рамках корректной стратегии кэширования, чтобы избегать лишних запросов к upstream server, особенно если кэш часто запрашивается, а ресурсы вряд ли изменяются. Однако если для вашего приложения критична актуальность в реальном времени, включение этой директивы может помочь поддерживать поставку актуального контента.
Пример конфига
location /example {
proxy_pass http://example_upstream;
proxy_cache my_cache;
proxy_cache_revalidate on;
}Использование этой директивы без корректной стратегии кэширования может привести к высокой нагрузке на вышестоящие серверы из-за постоянных запросов на повторную валидацию.
Убедитесь, что вышестоящий сервер поддерживает условные запросы, иначе клиенты могут не получить выгоды от этой директивы.
Помните, что включение этой директивы может увеличить время отклика для первых запросов после истечения срока действия кэша.