Nginx被动健康检查
               
                来源:本站原创
                点击数: 次
                发布时间:2025年01月05日
            
            
            - 问题描述:nignx 错误日志中出现大量 no live upstreams while connecting to upstream,网站访问502 
  
- 问题排查: 
- 当收到访问时才对后端发起探测; 
- 请求根据转发规则首次可能落到不可用节点,如多个节点故障则可能出现转发多台后才将请求转到正常的服务,在高并发的时候影响转发效率。 
被动健康检查关键参数max_fails与fail_timeout,官方描述如下:

max_fails:在配置的fail_timeout期间,最大的连接错误数,默认配置为1,如配置为0则表示不启用探测,不管后端服务是否异常仍然会转发,单位次数
fail_timeout:服务被认为不可用的的时间,单位为s
如下配置:在3s内中如果有1次连接失败,则表示该节点不可用,将该节点下线3s后才会再次探测
upstream personal_1 {
 server ip:port max_fails=1 fail_timeout=3;
 server ip:port max_fails=1 fail_timeout=3;}
 server {
 listen      80 ;
 server_name _;
 location ~ / {
 proxy_pass http:// personal_1;
 }
}问题处理:取消nginx 被动检查。 max_files=0 fail_timeout=10;
