uwsgi_next_upstream

Директива `uwsgi_next_upstream` определяет условия, при которых сервер NGINX попытается передать запрос следующему серверу в группе, если текущий сервер отказал.

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

Описание

Директива uwsgi_next_upstream используется при обработке ошибок, возникающих при взаимодействии с upstream UWSGI-серверами. Она позволяет настроить конкретные коды ответов или условия, которые будут вызывать повторную попытку отправки запроса на следующий сервер в группе upstream. Среди допустимых значений — типичные условия отказа, такие как timeout, invalid_header, а также диапазон HTTP-кодов состояния, указывающих на ошибки (например, 502, 503, 504). Такая гибкость помогает повысить надёжность веб-приложений, предоставляя резервные варианты на случай проблем с сервером.

Когда NGINX сталкивается с ошибкой при обработке UWSGI-запроса, совпадающей с одним из указанных условий отказа, он автоматически попытается перенаправить запрос на следующий сервер, определённый в директиве uwsgi_pass. Это значительно повышает устойчивость приложения, предотвращая влияние временных ошибок на конечного пользователя. Параметры директивы можно комбинировать, чтобы обеспечить комплексную стратегию повторных попыток, адаптированную к потребностям конкретного приложения.

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

location /app {
    uwsgi_pass backend;
    uwsgi_next_upstream error 502 503 504;
}

Убедитесь, что upstream servers способны обрабатывать те же запросы, что и исходный сервер, чтобы избежать несогласованного поведения.

Директива должна использоваться только в контексте директив uwsgi, таких как uwsgi_pass, в противном случае она не имеет эффекта.

Если несколько upstream servers недоступны, запросы могут попасть в цикл повторных попыток, если не заданы соответствующие условия выхода.

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