grpc_read_timeout

Устанавливает таймаут для чтения ответов от gRPC сервера в NGINX. — NGINX HTTP Core

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

Описание

Директива `grpc_read_timeout` определяет максимальный интервал времени, в течение которого NGINX будет ждать ответа от gRPC backend server после установления соединения. Этот таймаут критически важен для регулирования того, как долго сервер должен продолжать ожидать ответа, прежде чем отказаться и закрыть соединение. Он позволяет администраторам тонко настраивать отзывчивость сервера и управление ресурсами, избегая длительных зависаний, когда запросы висят бесконечно. Эта директива может быть указана в трёх контекстах: `http`, `server` и `location`. Её значение задаётся в формате времени (например, '30s' для 30 секунд). Значение директивы должно быть допустимым интервалом времени, который можно указать в секундах, минутах или часах. Если ответ не получен в течение указанного периода таймаута, NGINX вернёт ошибку клиенту, что обеспечивает лучшую отказоустойчивость сервисов, которые могут испытывать задержки. Установка подходящего значения `grpc_read_timeout` имеет решающее значение, особенно в производственной среде, где gRPC-сервисы могут демонстрировать различное время отклика в зависимости от нагрузки. Слишком короткий таймаут может привести к ненужным повторным попыткам или ошибкам, тогда как слишком длинный может ухудшить отзывчивость приложения, поскольку запросы могут без необходимости длительно висеть.

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

location /example {
    grpc_pass grpc://backend;
    grpc_read_timeout 30s;
}

Убедитесь, что таймаут указан в правильном формате (например, '30s').

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

Если не задано, значение по умолчанию (60 секунд) может быть недостаточным для некоторых операций gRPC.