proxy_next_upstream_timeout

Директива 'proxy_next_upstream_timeout' задаёт таймаут для попыток подключения к следующему upstream-серверу в прокси-сценарии. — NGINX HTTP Core

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

Описание

Директива `proxy_next_upstream_timeout` в NGINX используется для указания максимального времени ожидания следующего upstream-сервера после того, как предыдущая попытка подключения завершилась неудачей. Это особенно полезно при балансировке нагрузки между несколькими бэкенд-серверами, так как она определяет, сколько времени NGINX будет ждать, прежде чем повторно попробовать подключиться к другому серверу в upstream-блоке при возникновении указанных условий ошибки или таймаута. Когда запрос завершается неудачей из-за таймаута или других заданных критериев, NGINX может автоматически попытаться подключиться к альтернативному upstream-серверу. Директива `proxy_next_upstream_timeout` позволяет администраторам контролировать, как долго будет выполняться такая повторная попытка. Подбирая значение этого таймаута, вы можете оптимизировать отзывчивость вашего приложения, находя баланс между ожиданием потенциально медленного сервера и быстрым переключением на здоровый сервер. Значение таймаута задаётся в формате времени, совместимом с NGINX, например в секундах, минутах или часах (например, '30s' для 30 секунд). Установка этой директивы в разных контекстах, таких как `http`, `server` или `location`, даёт возможность тонкой настройки в соответствии с требованиями приложения.

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

location /api {
    proxy_pass http://backend;
    proxy_next_upstream_timeout 5s;
}

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

Учтите взаимодействие между `proxy_next_upstream_timeout` и другими связанными директивами, такими как `proxy_connect_timeout`.

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