proxy_next_upstream_tries
Директива `proxy_next_upstream_tries` управляет количеством попыток связи с upstream-серверами, если предыдущий запрос завершился неудачей.
Описание
Директива 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, повторные попытки могут не происходить так, как ожидается, из‑за неверной конфигурации условий отказа.