proxy_cache_valid
Директива `proxy_cache_valid` задаёт длительность, в течение которой кэшированный ответ считается действительным в зависимости от кода состояния ответа.
Описание
Директива proxy_cache_valid настраивает механизм кэширования в NGINX, указывая, как долго кэшированный ответ должен сохраняться для определённых кодов состояния HTTP. Эта директива особенно полезна, когда нужно контролировать длительность кэша в зависимости от разных типов ответов, возвращаемых проксируемым сервером. Например, можно захотеть кэшировать успешные ответы (HTTP 200) дольше, чем ошибки (например, HTTP 500). По умолчанию кэшированные ответы зависят от настроек proxy_cache_use_stale и proxy_cache_revalidate, если с этой директивой не задано конкретное время жизни (TTL).
Директива принимает одну или несколько пар аргументов: код(ы) состояния HTTP и период времени (который можно указывать в секундах, минутах, часах или днях). Например, можно написать proxy_cache_valid 200 1h;, чтобы кэшировать ответы HTTP 200 в течение одного часа. Используя несколько строк, вы можете задать разные периоды для различных кодов состояния, обеспечивая тонкую настройку поведения кэша в соответствии с потребностями вашего приложения. Важно отметить, что поведение кэширования также может зависеть от дополнительных директив, таких как proxy_cache, которые должны быть включены, чтобы proxy_cache_valid вступила в силу.
Пример конфига
location /api {
proxy_pass http://backend;
proxy_cache my_cache;
proxy_cache_valid 200 1h;
proxy_cache_valid 404 10m;
}Если proxy_cache не включён, эта директива не будет иметь эффекта.
Если при запросе ответа кэш не обслуживается, ответ не будет сохранён в кэше, даже если эта директива определена.
Будьте осторожны с кодами состояния: неверно указанные коды могут привести к нежелательному поведению кэширования.