fastcgi_next_upstream_timeout

Устанавливает таймаут для последующих upstream-запросов FastCGI в NGINX. — NGINX HTTP Core

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

Описание

Директива `fastcgi_next_upstream_timeout` задаёт продолжительность таймаута для последующих запросов FastCGI, когда первоначальный запрос завершается неудачей. Эта директива даёт тонкий контроль над тем, сколько времени сервер будет ждать, прежде чем отказаться от FastCGI upstream после неудачной первой попытки. Указание этого таймаута может быть критически важным для приложений, для которых время отклика имеет значение, и где сервер может повторно отправлять запросы на другой бэкенд для получения более быстрого ответа. Таймаут можно задавать в разных контекстах, включая http, server и location-блоки, что обеспечивает гибкость в зависимости от потребностей конфигурации. Директива принимает значение времени в качестве аргумента, обычно в секундах. Если указанный таймаут истекает без получения ответа от upstream-сервера FastCGI, NGINX прерывает запрос и аналогичным образом переходит к следующему upstream. Такое поведение гарантирует, что серверы остаются отзывчивыми и могут корректно обрабатывать сбои приложений FastCGI. Иногда разработчики могут захотеть скорректировать этот таймаут в зависимости от производительности приложения и необходимых стратегий переключения, чтобы обеспечить более высокую доступность и снизить задержки при обслуживании запросов.

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

location /api {
    fastcgi_pass backend;
    fastcgi_next_upstream_timeout 10s;
    include fastcgi_params;
}

Убедитесь, что timeout установлен на разумное значение, чтобы избежать чрезмерной задержки при повторных попытках.

Использование слишком короткого timeout может привести к частым ошибкам при выполнении запросов, если upstream-сервер медленно отвечает.