grpc_send_timeout

定义向客户端发送 gRPC 响应的超时时间。 — NGINX HTTP Core

grpc_send_timeout
httpserverlocation
语法grpc_send_timeout time;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1

说明

`grpc_send_timeout` 指令在 NGINX 中设置服务器在处理完请求后向客户端发送 gRPC 响应的最长时间限制。该指令对确保客户端应用不会无限等待响应非常重要,有助于管理资源并维护应用性能。该指令可在不同上下文中使用,例如 `http`、`server` 和 `location`,允许你根据应用的具体需求设置不同的超时值。 当定义的超时时间到期时,NGINX 会终止连接并生成表示超时错误的 gRPC 状态码。在微服务众多的环境中,这尤其有用,因为快速失败响应通常比对严重延迟的服务无限期等待更可取。所指定的超时仅用于服务器开始向客户端发送响应之后的发送过程,这意味着它不影响请求本身的处理时间,只影响发送最终响应数据包的时间间隔。 该指令的语法为 `grpc_send_timeout time;`,其中 `time` 可以用多种格式指定,例如 `30s`(三十秒)或 `1m`(一分钟)等。选择超时时间时需在给予响应足够时间和防止无响应服务阻碍整体功能之间取得平衡。

配置示例

location /api {
    grpc_pass grpc://backend_service;
    grpc_send_timeout 30s;
}

将超时设置得过低可能导致过早断开连接,从而对合法请求产生不必要的错误。

确保该超时不会与其他超时设置(例如 `client_body_timeout` 或 `send_timeout`)冲突,否则可能导致意外行为。