方法一:killall -0 nginx实现
修改keepalived配置文件
! Configuration File for keepalived
global_defs {
router_id LVS_141
}
vrrp_script chk_ngx {
script "killall -0 nginx"
}
vrrp_instance nginx {
state MASTER
interface ens160
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.233.50
}
track_script {
chk_ngx
}
}
systemctl start keepalived
systemctl start nginx
方法二:脚本实现
创建脚本:
vim /etc/keepalived/check.sh
脚本:
#!/bin/bash
systemctl status nginx | grep "active(running)" > /dev/null
if [ $? -ne 0 ]; then
systemctl restart nginx &> /dev/null
sleep 1
systemctl status nginx | grep "active(running)" > /dev/null
if [ $? -ne 0 ]; then
systemctl stop keepalived
fi
fi
修改keepalived配置文件:
! Configuration File for keepalived
global_defs {
router_id LVS_141
}
vrrp_script chk_ngx {
script "/etc/keepalived/check.sh"
}
vrrp_instance nginx {
state MASTER
interface ens160
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.233.50
}
track_script {
chk_ngx
}
}
systemctl start keepalived
systemctl start nginx