线上LVS负载均衡请求不转发案例简单解决分析一例

线上某架构组织结构基本如下:

wKioL1WfnYXzALyeAApDtOPL5Sg960.jpg

基本架构描述:

前端采用的是lvs+keepalived做负载均衡和高可用,用来转发客户的请求给后端的业务服务器,也就是那4组nginx+tomcat业务服务器。说的更直白一些,那几台nginx+tomcat可以简答理解为lvs的客户端。


故障描述:

其中lvs转发到58.2.12.20这台服务器的时候, ActiveConn的值还有一些,InActConn几乎是没有数值的。为了这个问题纠结了好几天迟迟未能解决,由于刚到公司也不能不解决这些问题哦。


解决思路:

1)首先是判断后端的realserver是否可以正常访问,结果逐一调试访问 ,都没有发现问题。


2)查看keepalived.conf也没有发现任何的问题


3)查看各个的realserver的VIP也都能正常获取到,甚至后来自己写脚本去lvs服务器端重新获取;发现和原来没什么两样,也都能获取到VIP地址,证明这个VIP配置没有问题;


4)联系运维全的朋友们,问了几个远程也没看出是具体的什么问题,我郁闷哦。


5)排除方法,既然有些LVS客户端,也就是realserver(nginx+tomcat),,那么对比这些正常转发的nginx配置文件(也就是lvs的客户端配置文件,nginx这块入手),然后下载到本地的Windows系统,和不能转发的另外的一台nginx的配置文件采用Beyond Compare 3进行对比。发现了一个重大的问题。其中不正常的可以转发的都是没有在nginx的配置文件里面,截图如下

wKiom1WfnvjRa7hfAAKaJ9USOt8000.jpg

不能转发的nginx配置文件里面,直接写死了采用eth0来处理客户的请求,也就是来直接处理lvs服务端抛过来的请求。


解决方法:直接把nginx的listen监听ip地址采用sed给替换为空,然后保存,重启nginx。


再次观察:

wKiom1Wfn4nw-jOBAAI4XQsY3A0551.jpg

可以看到,已经可以正常。

由于整理的比较仓促,有什么不到位的地方,还请大家多多指导。多多批评指正。特此记录,留作备忘。

                                                                                                    追风 2015 07 10


本文出自 “追风-韩艳威-运维之路” 博客,谢绝转载!

你可能感兴趣的:(lvs不转发)