uwsgi_cache_use_stale

Директива `uwsgi_cache_use_stale` позволяет NGINX отдавать устаревшие кэшированные ответы при возникновении определённых ошибок или условий. — NGINX HTTP Core

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

Описание

Директива `uwsgi_cache_use_stale` управляет тем, когда NGINX должен отдавать устаревшее кэшированное содержимое в ответ на uWSGI-запросы. Эта директива особенно полезна для поддержания доступности сервиса, позволяя использовать устаревшие кэшированные ответы, пока генерируется свежий контент. Вы можете указать условия, при которых будет выдаваться устаревшее содержимое, с помощью следующих аргументов: 'error', 'timeout' и 'invalid_header'. Например, если бэкенд-сервер uWSGI недоступен или происходит таймаут, пользователи всё ещё могут получать кэшированное содержимое вместо страницы с ошибкой. Чтобы эффективно использовать эту директиву, добавьте её в ваш location-блок, где настроено кэширование uWSGI. Она может принимать несколько аргументов по необходимости — если, например, указать 'timeout error', то устаревшее содержимое будет выдаваться в случае как таймаута, так и ошибки. Это повышает надёжность ваших приложений за счёт снижения числа сбоев, с которыми сталкиваются пользователи. Однако администраторам следует соблюдать осторожность и убедиться, что устаревшее содержимое остаётся релевантным и приемлемым для пользователей, прежде чем широко применять эту директиву.

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

location /api {
    uwsgi_pass 127.0.0.1:9000;
    uwsgi_cache my_cache;
    uwsgi_cache_use_stale error timeout;
}

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

Помните, что перед использованием `uwsgi_cache_use_stale` нужно определить корректную конфигурацию кэша с помощью `uwsgi_cache`.

Сочетание слишком большого числа опций может привести к сложному поведению; тщательно тестируйте.