linux环境
安装,使用yum安装
yum install keepalived
设置开启自启
systemctl enable keepalived
systemctl list-unit-files | grep keepalived
keepalived 配置(主)
global_defs {
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
}
vrrp_instance nginx90 {
state MASTER
interface eth0
virtual_router_id 90 #根据需要设置,同网段切勿重复
priority 100
advert_int 2
authentication {
auth_type PASS
auth_pass nginx
}
track_script {
chk_nginx
}
virtual_ipaddress {
主VIP/24 #根据网卡信息设置
}
}
vrrp_instance nginx91 {
state BACKUP
interface eth0
virtual_router_id 91
priority 55
advert_int 1
authentication {
auth_type PASS
auth_pass nginx
}
track_script {
chk_nginx
}
virtual_ipaddress {
备VIP/24
}
}
keepalived 配置(备)
global_defs {
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
}
vrrp_instance nginx90 {
state MASTER
interface eth0
virtual_router_id 90
priority 55
advert_int 2
authentication {
auth_type PASS
auth_pass nginx
}
track_script {
chk_nginx
}
virtual_ipaddress {
主VIP/24
}
}
vrrp_instance nginx91 {
state BACKUP
interface eth0
virtual_router_id 91
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass nginx
}
track_script {
chk_nginx
}
virtual_ipaddress {
备VIP/24
}
}
检测脚本:
#!/bin/bash
NginxPids=`ps -C nginx --no-header|wc -l`
if [ "$NginxPids" == "0" ]; then
sbin/nginx -c conf/nginx.conf #可根据实际情况更改
sleep 3
fi
NginxPids=`ps -C nginx --no-header|wc -l`
if [ "$NginxPids" == "0" ]; then
/bin/systemctl stop keepalived
ps aux| grep "/usr/sbin/keepalived" | grep -v grep | awk '{print $2}' | xargs kill
exit 1
fi