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;