scgi_cache_revalidate
Директива `scgi_cache_revalidate` управляет тем, будет ли NGINX повторно проверять кэшированные ответы SCGI перед их отправкой клиентам. — NGINX HTTP Core
Описание
Директива `scgi_cache_revalidate` в NGINX используется в контексте блоков `http`, `server` или `location`. Она выполняет роль флага, который определяет, должны ли кэшированные ответы повторно проверяться у SCGI-сервера перед их отправкой клиенту. Когда эта директива установлена в `on`, NGINX будет проверять корректность кэшированного ответа по отношению к бэкенд SCGI‑серверу при каждом запросе к этому ресурсу, гарантируя, что клиенты получают самую актуальную информацию. Если установить её в `off`, NGINX будет отдавать кэшированное содержимое без проверки его актуальности, что может приводить к возврату устаревших данных, если содержимое на сервере изменилось. Эта директива тесно связана с другими директивами кэширования, такими как `scgi_cache`, где `scgi_cache` задаёт зону кэширования, а `scgi_cache_use_stale` может быть использована для отдачи устаревшего содержимого при необходимости. Основная цель `scgi_cache_revalidate` — обеспечить приоритет свежести данных в сценариях, когда бэкенд мог обновить содержимое, которое должно быть отражено пользователю. Неправильная установка этого флага может привести к отдаче устаревшего содержимого, если кэширование настроено, но повторная проверка не приоритетна.
Пример конфига
scgi_cache_path /tmp/scgi_cache levels=1:2 keys_zone=my_cache:10m;
location /example {
scgi_pass backend;
scgi_cache my_cache;
scgi_cache_revalidate on;
}Установка `scgi_cache_revalidate` в `off` может привести к выдаче устаревшего контента без проверок.
Убедитесь, что `scgi_cache` настроен правильно, иначе эта директива не будет иметь никакого эффекта.