我在配置LVS+Keepalived遇到幾個比較棘手的問題,因而乎記錄總結一波。linux
###What did you do todaynginx
1.在防火牆添加VRRP通信支持引用,命令:iptables -A INPUT -d 224.0.0.18 -j ACCEPT 服務器
![]()
![]()
2.好像防火牆加了這個策略,也不能解決問題,那麼咱們安裝tcpdump,分析一下vrrp的組播狀況。安裝命令: yum install -y tcpdump ![]()
3.查看vrrp的組播狀況,tcpdump vrrp -n,很明顯的能夠看到192.168.12.4和192.168.12.8這2個ip在輪流發送組播信號。而正常的應該是MASTER服務器發送組播,若是BACKUP收不到MASTER的組播信號,那麼就斷定MASTER宕機了,BACKUP就接收vip。 ![]()
4.先肯定服務器的SElinux是否設置爲關閉,查看SElinux的狀態,命令:getenforce,Enforcing#強制開啓,Permissive#寬容模式,Disabled#關閉。若是是Enforcing強制模式,我就須要關閉。命令:setenforce 0#設置寬容模式,可是這樣只在本次生效,重啓服務器後將失效。若是須要永久關閉,還須要修改配置文件。sed -i 's/=enforcing/=disabled/g' /etc/sysconfig/selinux ![]()
5.進入/etc/sysconfig/目錄下的selinux,註釋掉SELINUX=targeted ![]()
6.咱們查看防火牆,看到蛋疼的一幕。 -A INPUT -d 224.0.0.18/32 -j ACCEPT寫在-A INPUT -j REJECT --reject-with icmp-host-prohibited後面了,正確的寫法應該是寫在-A INPUT -j REJECT --reject-with icmp-host-prohibited的前面。咱們須要修改過來! ![]()
7.如今咱們在主lvs和備lvs查看vrrp的組播狀況,發現只有192.168.12.4發給192.168.12.8的狀況,這就很爽了嘛! ![]()
![]()
8. 經過ip a 查看各個節點ip狀況。發現只有主lvs的eth0節點有vip,備lvs沒有。完美解決! ![]()
![]()
![]()
1.經過/var/log/keepalived.log,發現主lvs鏈接192.168.12.3:80失敗了! tcp
2. 咱們來查看nginx1(192.168.12.2)和nginx2(192.168.12.3)的lo:0節點,顯示是虛擬ip192.168.12.100,這是沒問題的! ![]()
![]()
3.那咱們只能拿出殺手鐗了,重啓虛擬機。 ![]()
4.重啓後,咱們再來看ipvsadm -ln,發現RealServer有192.168.12.2:80和192.168.12.3:80了,美滋滋。 ![]()
![]()
###Summary3d
路漫漫其修遠兮,吾將上下而求索。下一篇LVS+Keepalived雙主模式。rest