scgi_next_upstream_tries

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

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

Описание

Директива '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' правильно настроен; в противном случае директива может не сработать так, как ожидается.