proxy_cache_use_stale

Директива proxy_cache_use_stale контролирует, когда возвращать клиентам устаревшие кэшированные ответы.

Синтаксисproxy_cache_use_stale error | timeout | invalid_header | updating | http_500;
По умолчаниюnone
Контекстhttp, server, location
Аргументы1+

Описание

Директива proxy_cache_use_stale позволяет NGINX отдавать кэшированные ответы, которые могут быть устаревшими, в зависимости от определённых условий, вместо запроса свежего содержимого у бэкенд-сервера. Это особенно полезно для улучшения времени отклика и снижения нагрузки на бэкенд при высокой задержке или простоях. Директиве можно задать несколько параметров, которые определяют, при каких условиях следует использовать устаревшие кэшированные данные. Например, при указании 'error' NGINX будет отдавать устаревший контент, если бэкенд-сервер возвращает любой код ошибки. Аналогично можно указать 'timeout', 'updating' и 'http_500' в качестве условий для отдачи устаревших данных. Несколько условий можно указать в одной директиве, разделяя их пробелами.

Когда директива включена с конкретными параметрами, если NGINX сталкивается с ситуацией, которая соответствует одному из критериев при попытке получить свежий контент (например, 'timeout' или ошибка сервера), он автоматически отдаст последний кэшированный ответ, соответствующий этому запросу, вместо того чтобы возвращать клиенту ошибку. Это повышает отказоустойчивость и качество пользовательского опыта, особенно для часто запрашиваемых ресурсов, где кэшированные данные могут оставаться полезными, даже если они немного устарели.

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

location /api {
    proxy_pass http://backend;
    proxy_cache my_cache;
    proxy_cache_use_stale error timeout;
}

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

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

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