grpc_next_upstream_timeout

为 gRPC 请求中连接下一个上游服务器设置超时时间。 — NGINX HTTP Core

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

说明

`grpc_next_upstream_timeout` 指令指定在 gRPC 请求期间,当前一个上游服务器失败时,等待连接到下一个上游服务器的最长时间。该超时在多个上游服务器可能参与处理客户端请求的场景中至关重要。如果初始上游服务器发生错误,所配置的超时时间决定了 NGINX 在操作超时之前,会尝试连接栈中下一个可用上游服务器的时长。 `grpc_next_upstream_timeout` 的参数以毫秒为单位定义,这允许在主要服务器无响应或响应缓慢等不利情况下对响应生成速度进行细粒度控制。它直接影响服务的效率和响应性,尤其是在上游服务器故障率或延迟较高的情况下。通过配置此指令,管理员可以在等待服务器响应与故障切换到替代服务器之间取得平衡,从而优化用户体验和资源使用。 此指令可以在 `http`, `server` 和 `location` 等多种上下文中设置,使其在不同级别的配置中都具有通用性。将其与 `grpc_pass` 或 `proxy_next_upstream` 等相关指令结合使用,能够进一步增强服务器的功能和可靠性。

配置示例

location /api {
    grpc_pass grpc://my_upstream;
    grpc_next_upstream_timeout 500ms;
}

确保所指定的时间适合您的应用程序的性能需求;过短的 timeout 可能导致过多的 failovers,而过长的 timeout 可能会延迟响应。

该指令仅在使用 gRPC 时生效;请确保您的 upstream server 已相应配置。