fastcgi_cache_use_stale
Директива `fastcgi_cache_use_stale` управляет тем, выдаются ли устаревшие кешированные ответы в определённых сценариях, например, когда upstream server недоступен или когда запрос превышает время ожидания. — NGINX HTTP Core
Описание
Директива `fastcgi_cache_use_stale` позволяет NGINX выдавать устаревшие кешированные ответы в определённых условиях, улучшая пользовательский опыт и производительность за счёт сокращения простоев или задержек при проблемах с сервером. Эту директиву можно включать для различных сценариев, включая 'error', 'timeout', 'invalid_header' или 'updating'. Если запрос сталкивается с такими проблемами, вместо возврата ошибки NGINX может отдать последний успешно закешированный ответ. Такое поведение особенно полезно в конфигурациях с высокой доступностью, когда важно поддерживать вовлечённость пользователей, даже если серверы бэкенда испытывают временные проблемы. Эту директиву можно задавать в нескольких контекстах: `http`, `server` и `location`, что делает её гибкой для различных конфигураций. Каждый переданный аргумент должен указывать, в каких сценариях следует возвращать устаревшие данные. Если указано несколько условий, устаревший контент будет выдан, если выполнено любое из них. Директива работает совместно с директивой `fastcgi_cache` и фактически повышает устойчивость механизма кэширования, смягчая влияние сбоев upstream или медленных ответов на опыт клиента.
Пример конфига
location /api {
fastcgi_pass backend;
fastcgi_cache my_cache;
fastcgi_cache_use_stale error timeout;
}С устаревшими ответами следует обращаться осторожно, чтобы пользователи не получали устаревшие или неверные данные.
Использование этой директивы без надлежащих стратегий истечения срока действия кэша и его инвалидации может привести к проблемам с устаревшими данными.
Убедитесь, что указанные сценарии использования соответствуют потребностям вашего приложения. Например, выдача устаревших данных при всех ошибках может быть не лучшим решением для всех приложений.