ajp_upstream_fail_timeout
Директива `ajp_upstream_fail_timeout` задаёт длительность, в течение которой NGINX будет ждать, прежде чем считать upstream AJP-сервер недоступным после сбоя соединения.
Описание
Директива ajp_upstream_fail_timeout используется в AJP-модуле NGINX (Apache JServ Protocol) для установки механизма резервирования для upstream-серверов. Когда AJP-запрос завершается неудачей из-за недоступности upstream-сервера, эта директива определяет период времени, после которого NGINX повторно попытается подключиться к неработающему серверу. По сути, она позволяет NGINX ждать заданный промежуток времени перед тем, как отметить сервер как недоступный и временно исключить его из маршрутизации запросов. Такое поведение помогает избежать чрезмерного помечания серверов как упавших при кратковременных сбоях, давая серверу возможность восстановиться до того, как он будет окончательно удалён из пула.
Параметр для ajp_upstream_fail_timeout задаётся в формате времени (например, 30s для тридцати секунд). Подбор подходящей длительности критически важен для баланса между оперативностью реакции на отказы серверов и излишне агрессивным снятием сервера с обслуживания; такие факторы, как характер приложения и ожидаемая продолжительность недоступности, могут влиять на этот выбор. Директива может размещаться в контекстах http, server или location, что даёт гибкость в управлении механизмом переключения по отказу в разных частях конфигурации NGINX.
Пример конфига
http {
upstream tomcats {
server 127.0.0.1:8009;
ajp_upstream_fail_timeout 30s;
}
server {
listen 80;
location / {
ajp_pass tomcats;
}
}
}Установка слишком маленького таймаута может привести к частым срабатываниям отказов сервера из-за кратковременных проблем.
Убедитесь, что fail timeout достаточно велик для сценариев реального восстановления, но не настолько, чтобы ухудшать общую производительность.