fastcgi_cache_valid

Определяет, как долго действительные кэшированные ответы сохраняются в кэше FastCGI. — NGINX HTTP Core

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

Описание

Директива `fastcgi_cache_valid` задаёт период времени, в течение которого кэшированный ответ FastCGI считается действительным, то есть может быть отдан без повторного запроса к backend server. Эта директива принимает интервал времени и конкретный код ответа или диапазон кодов ответа. Например, использование `fastcgi_cache_valid 200 10m;` указывает, что ответ 200 OK будет кэшироваться в течение 10 минут. Можно указать несколько строк этой директивы, чтобы задать разные периоды действия для разных кодов ответа. Важно отметить, что директива должна располагаться в соответствующем контексте, например в блоках http, server или location, и работает в сочетании с директивой `fastcgi_cache`. Когда отдается действительный кэш, директива `fastcgi_cache_bypass` может использоваться для условного обхода кэша. Это обеспечивает большую гибкость в поддержании актуального содержимого при необходимости, при этом сохраняя преимущества кэширования для повторяющихся запросов.

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

fastcgi_cache my_cache;
fastcgi_cache_valid 200 10m;
fastcgi_cache_valid 404 1m;

Убедитесь, что fastcgi_cache определён перед использованием этой директивы.

Неправильная конфигурация может привести к тому, что устаревшие ответы из кэша будут выдаваться дольше, чем ожидаемый период их актуальности.

Ошибки кэширования могут возникнуть, если коды состояния указаны некорректно. Можно задать несколько настроек срока действия для разных кодов ответов.