​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;