scgi_cache_valid

Директива 'scgi_cache_valid' определяет период времени, в течение которого кэшированные ответы на SCGI-запросы считаются действительными. — NGINX HTTP Core

scgi_cache_valid
httpserverlocation
Синтаксисscgi_cache_valid code time;
По умолчаниюnone
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1+

Описание

Директива 'scgi_cache_valid' используется для настройки поведения кэширования ответов SCGI (Simple Common Gateway Interface) в зависимости от их кодов состояния. Директива позволяет администратору задавать разные продолжительности кэширования для разных HTTP-кодов ответов, что увеличивает контроль над механизмом кэширования. Когда ответ кэшируется, указанное время (в секундах) показывает, как долго ответ должен храниться в кэше, прежде чем он будет помечен как устаревший и потребуется отправка нового запроса к upstream service. Директива может принимать один или несколько аргументов, где каждый аргумент сопоставляет HTTP-код состояния с длительностью кэширования. Например, период кэширования для успешных ответов (например, 200) может отличаться от периода для ответов об ошибке (например, 404). Такая гибкость помогает оптимизировать использование кэша и обеспечить пользователям получение свежего контента при сохранении преимуществ производительности за счёт кэширования. Кроме того, 'scgi_cache_valid' используется внутри блоков 'http', 'server' или 'location', что позволяет применять её к конкретным маршрутам или виртуальным хостам. Она работает совместно с директивой 'scgi_cache', которая должна быть включена, чтобы кэширование вступило в силу. Если ответ на запрос соответствует определённому коду состояния и не превысил установленный срок, NGINX отдаст кэшированную версию вместо отправки нового запроса на backend, что повышает производительность и снижает нагрузку.

Пример конфига

http {
    scgi_cache path/to/cache;
    scgi_cache_valid 200 1h;
    scgi_cache_valid 404 30m;
}

Убедитесь, что 'scgi_cache' включён, чтобы кеширование работало корректно.

Будьте осторожны при установке длительных сроков кеширования для динамического содержимого, поскольку это может привести к выдаче устаревших данных.

Директива не работает изолированно; она полагается на дополнительные директивы для полной функциональности.