scgi_cache_revalidate

Директива `scgi_cache_revalidate` управляет тем, будет ли NGINX повторно проверять кэшированные ответы SCGI перед их отправкой клиентам.

Синтаксисscgi_cache_revalidate on | off;
По умолчаниюoff
Контекстhttp, server, location
Аргументыflag

Описание

Директива 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 настроен правильно, иначе эта директива не будет иметь никакого эффекта.

← Ко всем директивам