Nginx 健康检查无效

在windows上部署了nginx1.7.7 负载了两个节点。然后故意停掉一个节点,不断刷新页面,发现仍然会访问到已经停掉的节点上。
网上查了很多资料,都说配置了max_fails和fail_timeout后会自动检查后端节点,如果这个节点挂掉会自动设为down,但实际测试并非如此,请大神指教。
配置如下
upstream mysvr { 
        server 192.168.1.104:8091 max_fails=1 fail_timeout=10s;
        server 192.168.1.104:8092 max_fails=1 fail_timeout=10s; 
    }
错误日志如下
2015/07/03 14:31:13 [error] 20540#14128: *147 upstream timed out (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond) while connecting to upstream, client: 192.168.1.104, server: 192.168.1.104, request: "GET / HTTP/1.1", upstream: "http://192.168.1.104:8091/", host: "192.168.1.104:8090"
问题补充:
刚才又测试了一下,发现如果一个节点down掉,nginx仍然会访问到这个节点,但过了一会儿会跳转到健康的节点上并返回,只是这个时间有点久,几乎要两分钟左右才能返回。 
能不能实现只要检查到节点down掉,就直接不要访问此节点。
 
 
再次补充,在网上查到可以设置proxy_read_timeout来减少转发的时间,设置成5S后情况有所好转,大约5S就转发到了健康节点上,但仍不完美,只能算是一个折中的方案。
posted @   Mike_Jia  阅读(354)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示