安装keepalived

yum install -y keepalived


keepalived配置文件(主)
! Configuration File for keepalived
global_defs {
	router_id lvs-10
}
vrrp_script chk_nginx {
	script "/etc/keepalived/nginx_check.sh" 
	interval 2
	weight -20
}

vrrp_instance VI_1 {
	state MASTER
	interface eth0
	virtual_router_id 51
	priority 100
	advert_int 1
	authentication {
		auth_type PASS
		auth_pass 1111
	}
	track_script {
		chk_nginx
	}
	virtual_ipaddress {
		192.168.1.99
	}
}
keepalived配置文件(从)
! Configuration File for keepalived
global_defs {
	router_id lvs-20
}
vrrp_script chk_nginx {
	script "/etc/keepalived/nginx_check.sh" 
	interval 2
	weight -20
}

vrrp_instance VI_1 {
	state BACKUP #也可以MASTER
	interface eth0
	virtual_router_id 51
	priority 90
	advert_int 1
	authentication {
		auth_type PASS
		auth_pass 1111
	}
	track_script {
		chk_nginx
	}
	virtual_ipaddress {
		192.168.1.99
	}
}

nginx_check.sh

#!/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
    /server/nginx/sbin/nginx #如果nginx没有启动就先启动nginx
    sleep 2
    counter=$(ps -C nginx --no-heading|wc -l)
    if [ "${counter}" = "0" ]; then
        service keepalived stop #如果nginx还是没有启动就关闭keepalived把虚拟IP让出去(注意不同操作系统的命令有所不同)
    fi
fi