scgi_cache_revalidate
Директива `scgi_cache_revalidate` управляет тем, будет ли NGINX повторно проверять кэшированные ответы SCGI перед их отправкой клиентам.
Описание
Директива 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 настроен правильно, иначе эта директива не будет иметь никакого эффекта.