grpc_connect_timeout

Задаёт тайм-аут установления соединения с бэкенд-сервером gRPC. — NGINX HTTP Core

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

Описание

Директива `grpc_connect_timeout` задаёт максимальное время, отведённое на установление соединения с бэкенд-сервером gRPC, в миллисекундах. Этот тайм-аут важен для того, чтобы длительные или неотзывчивые соединения не задерживали обработку клиентских запросов на продолжительное время. Если тайм-аут истёк до успешного установления соединения, NGINX прервет попытку соединения и вернёт клиенту ошибку, что позволит вашему приложению корректно обработать сбои соединения. Директива может размещаться в контекстах `http`, `server` или `location`, что позволяет администраторам задавать тайм-ауты соединения, соответствующие конкретным требованиям архитектуры приложения. Период тайм-аута можно задать любым положительным целым значением; если установить 0, тайм-аут будет отключён полностью, что обычно не рекомендуется в рабочей среде, где критична отзывчивость клиентов. Наиболее эффективно `grpc_connect_timeout` используется для балансировки между задержкой установления соединения и производительностью приложения, позволяя быстро выполнять повторные попытки или переключаться на альтернативные механизмы отказоустойчивости, если бэкенд-сервис не отвечает.

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

http {
    server {
        location / {
            grpc_pass grpc://backend;
            grpc_connect_timeout 500ms;
        }
    }
}

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

Отключение таймаута (установка в 0) может привести к длительным задержкам в сообщении об ошибках, если бэкенд-сервис не отвечает.