fastcgi_next_upstream_tries
Директива `fastcgi_next_upstream_tries` задаёт, сколько раз NGINX будет повторно обращаться к следующему upstream‑серверу при сбое запроса FastCGI. — NGINX HTTP Core
Описание
Директива `fastcgi_next_upstream_tries` определяет, сколько upstream‑серверов следует опробовать в случае неудачного запроса FastCGI. Установив эту директиву, NGINX позволяет распределять нагрузку между бэкенд‑серверами FastCGI, пытаясь повторно отправить запрос на указанное количество других серверов, если первоначальный сервер отказал. Это особенно полезно в сценариях, где критична высокая доступность и необходимо обеспечить работу приложения даже при недоступности одного или нескольких upstream‑серверов. При указании значения этой директивы его можно задать в контекстах http, server или location, что позволяет тонко настроить поведение в зависимости от потребностей приложения. Например, можно задать большее значение в location, более подверженном сбоям, и более низкое — в более стабильных частях приложения. Указанное значение должно быть положительным целым числом; при значении 0 функция фактически отключается, и NGINX не будет пытаться повторно обращаться к другим upstream‑серверам. Стоит отметить, что эта директива взаимодействует с другими, связанными с FastCGI, директивами, в частности с `fastcgi_next_upstream`, которая определяет условия, при которых будут происходить повторы. Совместное использование обеих директив обеспечивает комплексный контроль над тем, как NGINX обрабатывает сбои бэкенда и переключение на резервный сервер.
Пример конфига
location /api {
fastcgi_pass backend;
fastcgi_next_upstream_tries 3;
}Установка значения в 0 полностью отключает механизм повторных попыток, что может привести к более частым ошибкам, если первичный FastCGI‑сервер недоступен.
Убедитесь, что FastCGI‑серверы способны обрабатывать повторные попытки; в противном случае та же ошибка может повториться при следующей попытке.