手机版
你好,游客 登录 注册
背景:
阅读新闻

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

[日期:2013-05-09] 来源:51cto  作者:yaozb [字体: ]

二,看看前端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来不不影响,该干嘛还干嘛。

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

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款