ajp_connect_timeout

Директива `ajp_connect_timeout` задаёт таймаут для соединений с AJP-бэкенд-сервером.

Синтаксисajp_connect_timeout time;
По умолчанию60s
Контекстhttp, server, location
Аргументы1

Описание

Директива ajp_connect_timeout используется в конфигурациях NGINX там, где AJP (Apache JServ Protocol) применяется для связи с AJP-бэкендом, например, с сервером Tomcat. Эта директива задаёт максимальное время, в течение которого NGINX будет ожидать установления соединения с AJP-бэкендом. Таймаут особенно важен в условиях высокой нагрузки, когда задержки при подключении к бэкенду могут привести к ухудшению пользовательского опыта и общему снижению производительности.

Если эта директива задана и NGINX не может успешно подключиться к AJP-бэкенду в пределах указанного времени, он прекратит попытки и вернёт клиенту ответ с ошибкой. Это важно, чтобы избежать длительных задержек для пользователей, если бэкенд не работает или медленно отвечает. Значение таймаута можно задавать в секундах или с суффиксом времени (например, '30s' для 30 секунд). Директиву следует настраивать аккуратно, исходя из ожидаемой задержки бэкенда и общих требований к производительности вашего приложения.

Директива ajp_connect_timeout часто используется совместно с другими директивами, связанными с AJP, такими как ajp_pass, чтобы обеспечить корректную настройку всех аспектов AJP-соединений для оптимальной производительности. При изменении этой директивы важно учитывать компромисс между отзывчивостью и риском преждевременного разрыва соединений, которые могут иметь обоснованные задержки из-за нагрузки на обработку запросов на сервере бэкенда.

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

# Example NGINX configuration with AJP connection timeout
http {
    upstream tomcats {
        server 127.0.0.1:8009;
        keepalive 10;
    }

    server {
        listen 80;

        location / {
            ajp_pass tomcats;
            ajp_connect_timeout 30s;
            ajp_keep_conn on;
        }
    }
}

Установка слишком малого времени ожидания может привести к преждевременным сбоям соединения и ошибкам.

Если у AJP-бэкенда наблюдаются прерывистые задержки, может потребоваться увеличение времени ожидания, чтобы избежать ненужных разрывов соединения.

Эта директива должна быть установлена в том же контексте, где определён ajp_pass.

← Ко всем директивам