lvs&keepalived 虚拟ip问题

AooE 发布于 2016/05/22 13:11
阅读 3K+
收藏 0

公司要求集群环境搭建,测试环境已搭建完毕(一切正常),到仿真上现在遇到了一个很棘手的问题,先大致说下整个情况:
  Centos6.4
  2台Nginx分别负载相同两台tomcat;
  2台MariaDB主备;
  2台redis+sentinel主备;
  lvs+keepalived和Nginx装一起做主备,下面分别负载2台Nginx(端口80),2台mariadb(端口3306),2台redis-sentinel(端口26379)。
  如图:

现在遇到的问题(为表诉完整,说得有点多):
      虚拟ip的3306端口和26379端口始终都能正常访问能telnet通;
      但是虚拟ip的80端口一会儿通一会儿不通,试了很多台客户端访问都是一样的(排除我们配置的问题,用的测试环境已经成功的配置),两台真实ip80端口都能正常访问;
      然后怀疑是网络的问题,找网工看了,查了防火墙session(貌似有很多层),一层一层查上去,发现请求已经过去了但没有回来,网工只能做到这儿了,然后让我查一下服务端抓一下包什么的;
      然后在客户端装了Wirshark,服务端装了Tcpdump,同时抓包,客户端telnet 虚拟ip80端口发现:  客户端请求已经到了服务器,但是服务器却没有返回(这儿有两种情况:1、服务端接到请求并有返回,客户端没有收到返回的请求,这说明请求在返回的路上断了,是网络的原因;2、服务端接到请求没有返回,那就是服务端的问题了),确定是服务端的问题。
      接着就是各种测试,什么selinux啊,什么改虚拟ip,能想到的都试了,网上查到手段都试了,keepalived的日志也正常;

    还有一个奇葩问题,将keepalived配置里的80端口改为8080或其它端口,发现8080端口却根本访问不通(连时断时续都没有),依然是80端口可以时断时续的访问(还带缓存的?还是根本没生效?软件问题?)。

PS:搞得我现在都懵圈了,测试环境一切都正常,就仿真出这事儿,关键是3306和26379都通,就80时断时续(不是不通),真实服务的80也始终都正常,根据出现的那个奇葩问题,怀疑是不是lvs&keepalived本身软件的问题,打算周一重新下源码安装(原本用的镜像文件中自带的),还是系统有什么特别的设置?(关键所有系统都是一样的啊)


哪位大神遇到过这种问题,或有什么建议,给指点指点解决的方向什么的。。。

加载中
0
工作QQ

解决了吗?我也遇到了

AooE
AooE
回复@工作QQ: 解决了
0
DengQing
DengQing

您好  你是怎么解决了呢 问题出在哪呢  我这也出现了类似的问题,不知道该怎么解决

AooE
AooE
这儿解释了原因https://my.oschina.net/zwzbubi/blog/687774,解决的方案目前采用的是通过脚本检查服务状态,只起一个keepalived,因为nginx这两台我们是放在DMZ区的,只能给两台。最好的方案是把keepalive单独放两台,别个nginx放一起。
0
申缘

楼主,你好,问题解决了之后将其总结出来,以供大家参考。

AooE
AooE
https://my.oschina.net/zwzbubi/blog/687774
返回顶部
顶部