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就转发到了健康节点上,但仍不完美,只能算是一个折中的方案。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗