Nginx负载均衡引起的网站不可用
二,看看前端nginx负载均衡器。
我们来看一下nginx的配置文件
乍一看,好像也没什么问题。经过仔细的检查。发现问题,
我们来看一下,nginx配置文件里的这一句。
proxy_next_upstream error timeout http_503 http_500 http_502 http_504;
这句的意思,就是说
当遇到 503 、500、502、504错误时,跳到下一个节点。我在想,后端的lighttpd机器报很多500错误,虽然不影响,但是nginx 会跳到下一个节点,并在upstream里面fail_timeout值的时间内将此节点标记不可用。如果下一个节点还是500呢,又会标记不可用,那就完,两个点都不可用,那不全挂吗。
为证实我的想法,
我找一个报警的时间段。看一下后端的lighttpd日志。
我们对比看一下,发现在 16.点52分 09- 10秒的时候。都出现500错误。
我们看一下nginx在这个时间的错误日志
我们看到
在 16点 52分11秒的时候, nginx 出现报错,
报错的内容为 no live upstreams,意思就是没有后端机器。也就是说,后端两台都不可用。
找到错误原因,那就好解决。
第一,联系项目组找到500错误的原因。并解决。
第二,修改nginx的配置文件,
在 proxy_next_upstream error timeout http_503 http_500 http_502 http_504; 这段里,将 http_500 去掉。意思也就是说,当出现500错误的时候,对nginx来不不影响,该干嘛还干嘛。
修改后,果然再没有报警问题。
以下文章点击率最高
Loading…