首先,我们要先配置好nginx反向代理。

然后准备一个主负载均衡,一个从负载均衡,两个web服务器。

一、先在主从负载均衡上各安装两个网卡,一个公网,一个同网段私网。

cd /etc/sysconfig/network-scripts/
      cp ifcfg-eth0 ifcfg-eth1
      vim ifcfg-eth1
      DEVICE=eth1
      TYPE=Ethernet
      ONBOOT=yes
      NM_CONTOLLED=yes
      BOOTPROTO=dhcp
      ifup eth1
      ip link

二、安装keepalived安装包。

yum -y install keepalived
/etc/keepalived/keepalived.conf
 /etc/init.d/keepalived start
ps -ef | grep keepalived | grep -v grep
ip add | grep 192.168

keepalived的会话保持怎么开启 keepalived -f_配置文件

/etc/init.d/keepalived stop

     将上述测试同时在其他服务器上进行。

三、配置文件

vim /etc/keepalived/keepalived.conf
interface 改为收发心跳包的网卡(eth1)
eth0)

  启动命令: /etc/init.d/keepalived start

ifconfig

keepalived的会话保持怎么开启 keepalived -f_配置文件_02

 四、双实例

  将主配置文件和备配置文件分别设置一个主和备,提高资源利用率,注意确定主Master和备Slave,不要写两个主,会出现裂脑现象。

  主配置文件: 要再文件中分别设置一个主Master和备Slave,设置不同的优先级,id号,IP号。

keepalived的会话保持怎么开启 keepalived -f_配置文件_03

keepalived的会话保持怎么开启 keepalived -f_运维_04

  备配置文件:主和备的位置正好相反,优先级相反。

keepalived的会话保持怎么开启 keepalived -f_nginx_05

 

keepalived的会话保持怎么开启 keepalived -f_配置文件_06

进行测试,双实例配置完成。

五、如何在防火请开启的情况下接受到心跳包

首先确定是否有tcpdump命令,没有先安装。

然后抓包: tcpdump         -n                     -i          eth1 vrrp

           抓包      禁止反向解析    指定网卡

keepalived的会话保持怎么开启 keepalived -f_运维_07

注意:每个keepalived对之间用不通的组播地址,就不会产生冲突,最好不通实例的通信认证密码也不同,防止裂脑现象的发生。

   网线和防火墙的故障容易导致裂脑现象的发生,建多根冗余线可以减轻该情况的发生。

如何改动可以防备裂脑现象:

假设网络正常,keepalived正常,nginx出现故障:

我们需要在Master上写一个脚本,解决keepalived只能检测物理故障的bug:

若无nginx监听80端口存在,那么就停掉keepalived,释放VIP。

vim  detection_nginx.sh
    #! /bin/sh
    while true
    do
      if [`netstat -antup | grep nginx | wc -l` -ne 1 ];then
        /etc/init.d/keepalived stop
      fi
    sleep 5
    done

检测脚本是否成功:

后台执行脚本: sh detection_nginx.sh &

检查文件: ps -ef | grep detection | grep -v grep

确认nginx和keepalived是否正常:

netstat -antup | grep nignx 
/etc/init.d/keepalived status

然后模拟nginx故障,看IP是否发生飘移。

如何验证是否发生了裂脑现象:

ping一下私网IP: 检测网线是否损坏

telnet IP 80端口号: 检测服务器是否损坏

keepalived的会话保持怎么开启 keepalived -f_keepalived的会话保持怎么开启_08