IP配置说明
主机:192.168.12.106
备用机:192.168.12.107
VIP: 192.168.12.100
1、安装keepalived+nginx
yum -y install keepalived
nginx安装可参考:https://blog.youkuaiyun.com/lglspace/article/details/100577118
2、配制文件
主机 /etc/keepalived/keepalived.conf
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
# vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script chk_nginx_status {
script "/usr/local/tools/chk_nginx_status.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface enp0s3
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nginx_status
}
virtual_ipaddress {
192.168.12.100
}
}
备用机 /etc/keepalived/keepalived.conf
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
# vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script chk_nginx_status {
script "/usr/local/tools/chk_nginx_status.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP
interface enp0s3
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nginx_status
}
virtual_ipaddress {
192.168.12.100
}
}
脚本文件 /usr/local/tools/chk_nginx_status.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx-1.16.1/sbin/nginx
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
3、查看效果
curl 192.168.12.100
注意点:·
/etc/keepalived/keepalived.conf文件在书写时,大括号前面的空格是必须的!
ip a #可以查看虚拟IP是否有挂载到机器上
systemctl status keepalived #可以查看keepalive的一些状态信息,配制文件的语法有异常,会在这里面有体现出来
killall命令,需要安装才能用: yum -y install psmisc