VIP:172.16.99.34
IP:172.16.99.32
IP: 172.16.99.33
http:// 172.16.99.32:80
http:// 172.16.99.32:80
http:// 172.16.99.34:80/
# cd /app/soft # tar -zxvf keepalived-1.2.18.tar.gz # cd keepalived-1.2.18 # ./configure --prefix=/app/soft/keepalived # make && make install
默认目录是/app/soft
mkdir /etc/keepalived
cp /app/soft/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
复制到默认路径:
cp /app/soft/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /app/soft/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /app/soft/keepalived/sbin/keepalived /sbin/
cp /app/soft/keepalived/sbin/keepalived /usr/sbin/
chkconfig keepalived on
# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id master #节点ID
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" #检查nginx状态的脚步路径
interval 2 #检测时间间隔
weight -20 #如果条件成立权重-20
}
vrrp_instance VI_1 {
state MASTER
interface eno16777736 # ifconfig 查看IP对应的网卡
virtual_router_id 51
mcast_src_ip 172.16.99.32 #localIP
priority 200 #权重
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nginx #执行nginx监控的服务
}
virtual_ipaddress {
172.16.99.34#vip #虚拟IP
}
}
# vi /etc/keepalived/nginx_check.sh
#!/bin/bash
if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
then
killall keepalived
fi
# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id slave1
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface eno16777736
virtual_router_id 51
mcast_src_ip 172.16.1.33
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nginx
}
virtual_ipaddress {
172.16.99.34
}
}
# vi /etc/keepalived/nginx_check.sh
#!/bin/bash
if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
then
killall keepalived
fi
授权
# chmod +x /etc/keepalived/nginx_check.sh
# service keepalived start
Starting keepalived (via systemctl): [ 确定 ]
1.同时启动两台服务器,测试keepalive master主服务器是否拥有VIP虚拟IP:
预期结果:
a.主master服务器拥有VIP
b.能够通过VIP访问相应的nginx及下面相应的文件;
2.关闭keepalive master 主服务器的nginx ,查询是否会通过脚本关闭keepalive并释放VIP
预期结果:
a.nginx关闭,keepalive根据脚本自动关闭,通过相对于端口也无法访问;
3.启动 keepalive master 主服务器,查询VIP的拥有情况
预期结果:
a.master 主服务器抢占VIP,因为权重的配置比BACKUP的大
4.同时关闭两台服务器的nginx,测试访问情况;
预期结果:
a.相应的端口关闭,keepalive主动关闭,相对应的访问项目不了