scgi_next_upstream_timeout
指令 'scgi_next_upstream_timeout' 定义了在当前服务器未能响应时,等待上游组中下一个 SCGI 服务器响应的时间间隔。 — NGINX HTTP Core
scgi_next_upstream_timeout
httpserverlocation
语法scgi_next_upstream_timeout time;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1
说明
'scgi_next_upstream_timeout' 指令用于 NGINX 配置中,指定如果当前服务器未能响应,应等待下一个 SCGI 服务器响应的时长。在多个 SCGI 服务器并行运行的环境中,这个超时设置很重要,因为它允许 NGINX 在主服务器无响应时快速切换到另一个服务器,从而减少服务器停机时间。 该指令定义的时间对于依赖 SCGI 后端的 Web 应用性能和可靠性至关重要。当发出请求时,如果主 SCGI 服务器在指定超时时间内无法处理,NGINX 将尝试连接上游配置中列出的下一个服务器。如果该连接成功且服务器在超时时间内响应,则将下一服务器的响应返回给客户端。 通过调整此超时,管理员可以在性能和资源利用之间取得平衡。较短的超时可能导致更快的故障切换,但如果在短时间内发生过多故障切换,可能会导致多台服务器的负载增加。相反,较长的超时则可能在某台服务器响应缓慢时使应用显得更迟缓,从而导致较差的用户体验。因此,建议根据应用需求和服务器行为对该参数进行监控和调优。
配置示例
scgi_pass 127.0.0.1:9000; scgi_next_upstream_timeout 30s;
⚠
如果主服务器未能及时响应,将超时设置得太高可能会导致用户延迟增加。
⚠
将其设置得过低可能会使其他 SCGI 服务器不堪重负,因为快速的故障切换尝试可能导致振荡(反复切换)。