LINUX下haproxy+keepalived的配置

前面记录了HAProxy的简单配置,这次配置haproxy+keepalived,实现对haproxy的容错

系统环境:

193.168.120.71 HAPROXY服务器   keepalived主节点

193.168.120.72 HAPROXY服务器   keepalived备份节点

193.168.120.91  WEB服务器

193.168.120.60  WEB服务器

分别在193.168.120.71, 193.168.120.72 安装haproxy,

使用脚本安装:

[root@racnode2 shell]# cat 1.sh
yun install gcc -y
tar -zxvf /shared/soft/tar.gz/haproxy-1.8.3.tar.gz  -C /tmp
cd /tmp/haproxy-1.8.3
a=`uname -a`
c=`echo $a|cut -d " " -f3`
d=`echo $c|cut -d "." -f1`
e=`echo $c|cut -d "." -f2`
f=`echo $c|cut -d "." -f3`
g=`echo $f|cut -d "-" -f1`
h=$d$e$g                               #此处得到了四位的LINUX内核版本号
make TARGET=$h PREFIX=/data/haproxy
make install PREFIX=/data/haproxy
cp -r /data/haproxy/sbin/haproxy /usr/sbin/
cp -r ./examples/haproxy.init /etc/init.d/haproxy
chmod 755 /etc/init.d/haproxy
egrep "^haproxy" /etc/passwd >& /dev/null
if [ $? -ne 0 ]
then
    useradd -r haproxy
fi

接下来修改/etc/rsyslog.conf、创建/etc/haproxy/haproxy.cfg ,并启动服务,如上一篇文章所示

再接下来安装配置keepalived,仍然是在193.168.120.71, 193.168.120.72 安装

[root@racnode2 shell]# cat 3.sh 
#!/bin/bash
yum install -y wget make gcc openssl-devel popt-devel
tar -zxvf /shared/soft/tar.gz/keepalived-1.2.8.tar.gz -C /tmp/
cd /tmp/keepalived-1.2.8
./configure --prefix=/usr/local/keepalived
make
make install
cp -r /usr/local/keepalived/sbin/keepalived /usr/sbin/
cp -r /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp -r /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
mkdir -p /etc/keepalived/
chmod +x /etc/init.d/keepalived

此处两台机器相同

keepalived主节点的配置文件如下:

[root@racnode1 keepalived]# cat /etc/keepalived/keepalived.conf
global_defs {
    router_id LVS_DEVEL
}
vrrp_script chk_haproxy {
    script "/etc/keepalived/chk_haproxy.sh"
    interval 2
    weight 2
}
vrrp_instance VI_1 {
    state MASTER          
    interface eth0
    virtual_router_id 51
    priority 100                #BACKUP 99
    advert_int 1
    mcast_src_ip 193.168.120.71    #MASTER SERVER IP
    authentication {
        auth_type PASS
        auth_pass 111111
    }
    track_script {
        chk_haproxy   
    }
    virtual_ipaddress {
        193.168.120.70    #VIP
    }
}

keepalived备份节点的配置文件如下:

[root@racnode2 shell]# cat /etc/keepalived/keepalived.conf
global_defs {
    router_id LVS_DEVEL
}
vrrp_script chk_haproxy {
    script "/etc/keepalived/chk_haproxy.sh"
    interval 2
    weight 2
}
vrrp_instance VI_1 {
    state BACKUP          
    interface eth0
    virtual_router_id 51
    priority 99                #BACKUP 99
    advert_int 1
    mcast_src_ip 193.168.120.72    #BACKUP SERVER IP
    authentication {
        auth_type PASS
        auth_pass 111111
    }
    track_script {
        chk_haproxy   
    }
    virtual_ipaddress {
        193.168.120.70    #VIP
    }
}

两台机器的/etc/keepalived/chk_haproxy.sh一致,

chmod a+x /etc/keepalived/chk_haproxy.sh

[root@racnode2 shell]# cat /etc/keepalived/chk_haproxy.sh
#!/bin/bash
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
     /etc/init.d/haproxy  start
fi
sleep 2
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
       /etc/init.d/keepalived stop
fi

此时再分别启动两台机器的服务:

service haproxy start

service keepalived start

访问测试:

关闭keepalived主节点,VIP对应的站点自动切换到keepalived备用节点

猜你喜欢

转载自blog.csdn.net/lsysafe/article/details/81363058