fastcgi_next_upstream_timeout
Устанавливает таймаут для последующих upstream-запросов FastCGI в NGINX. — NGINX HTTP Core
Описание
Директива `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-сервер медленно отвечает.