scgi_send_timeout

Директива 'scgi_send_timeout' задаёт максимальное время, которое NGINX будет ждать при отправке запроса серверу SCGI. — NGINX HTTP Core

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

Описание

Директива 'scgi_send_timeout' устанавливает ограничение по времени на отправку запроса серверу SCGI (Simple Common Gateway Interface). Этот тайм-аут имеет решающее значение в сценариях, когда NGINX выступает в роли обратного прокси для бэкендов SCGI. Если указанное ограничение времени превышено, NGINX закроет соединение с сервером SCGI, фактически прерывая запрос. Тайм-аут измеряется с момента, когда NGINX начинает отправлять данные, до момента успешной отправки всех запрошенных данных, поэтому он важен для обработки долгих запросов или ответов, которые могут зависать. Эту директиву можно задавать в контекстах 'http', 'server' или 'location', что обеспечивает гибкость в конфигурировании политик тайм-аутов на разных уровнях детализации в конфигурации сервера. Параметр, принимаемый этой директивой, — это значение времени, которое может быть выражено в различных форматах, включая секунды, минуты или их комбинации, с использованием суффиксов, таких как 's', 'm' и т.д. Администраторы могут настраивать эту директиву для защиты от неотзывчивых серверов SCGI, оптимизируя использование ресурсов и предотвращая бесконечное ожидание NGINX ответа, который может не прийти. Пользователям следует проявлять осторожность при установке слишком малого значения тайм-аута, так как это может привести к преждевременным разрывам для допустимых долгих запросов. Наоборот, слишком большое значение может привести к излишнему потреблению ресурсов. Рекомендуется учитывать характер нагрузки приложения и производительность сервера SCGI при выборе подходящего значения тайм-аута.

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

location /api {
    scgi_pass backend;
    scgi_send_timeout 30s;
}

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

Убедитесь, что параметр timeout соответствует ожидаемому времени ответа сервера SCGI.