Nginx反向代理后端多节点下故障节点的排除思路

Posted 搬砖运维

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx反向代理后端多节点下故障节点的排除思路相关的知识,希望对你有一定的参考价值。

仔细想来,其实是个非常简单的问题;开发和运维觉得两个后端节点跑起来压力太大了,就扩充了两个新的后端节点上去,这一加就出问题了,访问时页面间歇性丢失,这尼玛什么情况...想了半天没思路,查了nginx的配置,没发现问题,查询后端的错误日志,也是一头雾水。

先贴出代理服务器的配置(upstream部分):

upstream api {
        server 192.168.1.10:9109;
        server 192.168.1.11:9109;
        server 192.168.1.12:9109;
        server 192.168.1.13:9109;
     }

其中1.12和1.13两个节点是新加上去的,考虑到这样配置的nginx代理是默认的轮询访问,干脆用有故障的服务器的故障日志去筛选,看别的节点上是否有相同的日志,依次查询完下来,发现只有12节点上有错误日志,这就很清晰了,是这个节点故障导致的访问页面时间歇性歇菜,干脆先把这个节点踢出去吧。

修改完代理的配置,重启了nginx服务,终于好了,明天检查这个节点上的服务,看什么情况造成的节点访问异常。

总结:如果今后出现类似的比如nginx、lvs等负载均衡的时候,可以考虑查看节点的办法去判断哪个节点出问题了,比如错误日志;也可以直接使用url访问测试,看究竟是否可用。这次故障,忘记直接使用url访问测试故障了,真是事多丢脑子!

以上是关于Nginx反向代理后端多节点下故障节点的排除思路的主要内容,如果未能解决你的问题,请参考以下文章

nginx用户请求反向代理流程

haproxy+openresty实现反向代理和ip透传

nginx 反向代理中proxy_set_header的含义

告诉nginx使用反向代理从节点应用程序中发送文件

如何使用多个节点应用程序设置 nginx 反向代理

Keepalived+Nginx反向代理检测集群节点状态企业实战