scgi_next_upstream_tries
Директива 'scgi_next_upstream_tries' задаёт количество попыток подключения к следующему upstream‑серверу в случае сбоя в коммуникации с SCGI‑службой. — NGINX HTTP Core
Описание
Директива 'scgi_next_upstream_tries' настраивает, сколько попыток NGINX предпримет для связи с другим upstream‑сервером SCGI, если начальный upstream‑сервер не отвечает должным образом. Она особенно полезна в ситуациях, когда в конфигурации NGINX определено несколько серверов SCGI, поскольку обеспечивает отказоустойчивость и повышает надёжность сервера. Эта директива принимает один целочисленный аргумент, который обозначает общее число повторных попыток, которые должны быть предприняты, прежде чем прекращать попытки подключения к последующим upstream‑серверам. При установке, если SCGI‑запрос завершается неудачей из‑за сетевых проблем, таймаута или любой другой ошибки, обнаруженной при обработке запроса, NGINX попытается переслать запрос следующему upstream‑серверу, указанному в SCGI‑блоке. Такое поведение может помочь распределить нагрузку и повысить доступность приложения. Если все указанные попытки исчерпаны и соединение не удалось установить, NGINX вернёт клиенту ответ с ошибкой. Важно тщательно настроить эту директиву в соответствии со спецификой вашего приложения и возможностями сервера, чтобы избежать излишних задержек при обработке запросов, особенно при высокой нагрузке или когда upstream‑серверы могут быть недоступны сразу.
Пример конфига
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
location /scgi {
include fastcgi_params;
scgi_pass backend;
scgi_next_upstream_tries 3;
}
}Установка слишком большого значения может привести к значительным задержкам во времени отклика, если upstream servers постоянно выходят из строя.
Убедитесь, что 'scgi_pass' правильно настроен; в противном случае директива может не сработать так, как ожидается.