grpc_connect_timeout
Задаёт тайм-аут установления соединения с бэкенд-сервером gRPC. — NGINX HTTP Core
Описание
Директива `grpc_connect_timeout` задаёт максимальное время, отведённое на установление соединения с бэкенд-сервером gRPC, в миллисекундах. Этот тайм-аут важен для того, чтобы длительные или неотзывчивые соединения не задерживали обработку клиентских запросов на продолжительное время. Если тайм-аут истёк до успешного установления соединения, NGINX прервет попытку соединения и вернёт клиенту ошибку, что позволит вашему приложению корректно обработать сбои соединения. Директива может размещаться в контекстах `http`, `server` или `location`, что позволяет администраторам задавать тайм-ауты соединения, соответствующие конкретным требованиям архитектуры приложения. Период тайм-аута можно задать любым положительным целым значением; если установить 0, тайм-аут будет отключён полностью, что обычно не рекомендуется в рабочей среде, где критична отзывчивость клиентов. Наиболее эффективно `grpc_connect_timeout` используется для балансировки между задержкой установления соединения и производительностью приложения, позволяя быстро выполнять повторные попытки или переключаться на альтернативные механизмы отказоустойчивости, если бэкенд-сервис не отвечает.
Пример конфига
http {
server {
location / {
grpc_pass grpc://backend;
grpc_connect_timeout 500ms;
}
}
}Установка слишком короткого таймаута может привести к частым преждевременным ошибкам прерывания соединения, что ухудшает опыт пользователей.
Отключение таймаута (установка в 0) может привести к длительным задержкам в сообщении об ошибках, если бэкенд-сервис не отвечает.