proxy_next_upstream_tries

Директива `proxy_next_upstream_tries` управляет количеством попыток связи с upstream-серверами, если предыдущий запрос завершился неудачей. — NGINX HTTP Core

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

Описание

Директива `proxy_next_upstream_tries` задаёт максимальное количество попыток, которые NGINX предпримет для связи с upstream-серверами до возврата ошибки. По сути она помогает балансировке нагрузки, устанавливая лимит повторных попыток, применяемый, когда запрос к upstream-серверу не удаётся из‑за указанных условий отказа. К таким условиям могут относиться недоступность сервера, таймауты или другие ошибки. Когда директива установлена, NGINX попытается повторно отправить запрос на другой сервер в определённой группе upstream до указанного числа попыток. Если будет достигнут максимальный предел попыток, NGINX вернёт клиенту сообщение об ошибке. Эта функция может повысить доступность и устойчивость сервисов, особенно в развертываниях в кластере, где некоторые серверы могут временно перестать отвечать. Поведение этой директивы определяется директивой `proxy_next_upstream`, которая определяет, какие сценарии отказа должны запускать повторную попытку. Важно сбалансировать число попыток в условиях ограниченных ресурсов, поскольку чрезмерные повторы могут привести к снижению производительности из‑за ненужной нагрузки на upstream-серверы.

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

location /api {
    proxy_pass http://backend;
    proxy_next_upstream_tries 3;
}

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

Если не сочетать с соответствующими настройками `proxy_next_upstream`, повторные попытки могут не происходить так, как ожидается, из‑за неверной конфигурации условий отказа.