Nginx负载均衡引起的网站不可用

Nginx负载均衡引起的网站不可用

二,看看前端nginx负载均衡器。

我们来看一下nginx的配置文件


乍一看,好像也没什么问题。经过仔细的检查。发现问题,

我们来看一下,nginx配置文件里的这一句。

proxy_next_upstream error timeout http_503 http_500 http_502 http_504;

这句的意思,就是说
当遇到 503 500502504错误时,跳到下一个节点。我在想,后端的lighttpd机器报很多500错误,虽然不影响,但是nginx 会跳到下一个节点,并在upstream里面fail_timeout值的时间内将此节点标记不可用。如果下一个节点还是500呢,又会标记不可用,那就完,两个点都不可用,那不全挂吗。

为证实我的想法,
我找一个报警的时间段。看一下后端的lighttpd日志。


我们对比看一下,发现在 16.52 09- 10秒的时候。都出现500错误。

我们看一下nginx在这个时间的错误日志


我们看到
16 5211秒的时候, nginx 出现报错,
报错的内容为 no live upstreams,意思就是没有后端机器。也就是说,后端两台都不可用。

找到错误原因,那就好解决。

第一,联系项目组找到500错误的原因。并解决。

第二,修改nginx的配置文件,
proxy_next_upstream error timeout http_503 http_500 http_502 http_504;  这段里,将 http_500 去掉。意思也就是说,当出现500错误的时候,对nginx来不不影响,该干嘛还干嘛。

修改后,果然再没有报警问题。

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注