uwsgi_next_upstream_timeout
Директива 'uwsgi_next_upstream_timeout' задаёт таймаут для следующего upstream-запроса, когда предыдущий запрос завершился неудачно в контексте uWSGI. — NGINX HTTP Core
Описание
Директива `uwsgi_next_upstream_timeout` в основном используется в конфигурациях NGINX, где в качестве бэкендного прикладного сервера используется uWSGI. Эта директива задаёт максимальный период времени, который NGINX должен ждать перед попыткой отправить запрос следующему upstream-серверу, если текущий сервер отказал. Это особенно полезно в средах с балансировкой нагрузки, где запросы распределяются между несколькими серверами uWSGI. Директива должна быть задана значением времени, которое может быть указано в секундах или с суффиксом, таким как 'ms' для миллисекунд, 's' для секунд, 'm' для минут или 'h' для часов. Если запрос к upstream-серверу не удался и указанный таймаут ещё не истёк, NGINX немедленно попытается связаться с другим сервером из группы доступных upstream-серверов. Это может улучшить время отклика в приложениях с высокой нагрузкой, поскольку позволяет быстрее переключаться на другие серверы, которые, возможно, смогут успешно обработать запрос. Крайне важно убедиться, что значение, установленное для этой директивы, согласовано с общими настройками таймаутов в вашей конфигурации NGINX для других связанных директив (например, `uwsgi_read_timeout`), поскольку несогласованные значения могут привести к неожиданному поведению при обработке запросов. Кроме того, увеличение этого таймаута без надлежащего мониторинга может привести к длительному ожиданию по запросам, которые в конечном счёте всё равно завершатся неудачей, что может негативно сказаться на опыте пользователей.
Пример конфига
uwsgi_next_upstream_timeout 30s;
Установка очень короткого timeout может привести к частым попыткам failover и увеличению нагрузки на upstream servers.
Отсутствие настройки этого directive совместно с другими timeout directives может привести к неожиданному request handling behavior.