一、keepalive介绍
1.1 keepalived介绍
1.2 nginx+keepalived架构图
二、配置nginx+keepalived
2.1 安装nginx
2.2 安装keepalived
2.3 配置keepalived
2.3.1 nginx01(192.168.10.3)keepalived配置
/etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs {router_id LVS_01 # router_if LVS_02}vrrp_instance VI_1 {state MASTER # BACKUPinterface eth33 # 通信端口 通过ip addr可以看到 根据自己的机器配置virtual_router_id 51 # vrrp实例id keepalived集群,实例id必须一致priority 100 # 从:99advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress { # 自定义虚拟IP192.168.10.111}}
2.3.2 nginx02(192.168.10.4)keepalived配置
/etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_02
}
vrrp_instance VI_1 {
state BACKUP
interface eth33
virtual_router_id 51
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.111
}
}
2.3.3 nginx01,02添加检测脚本
1) 创建脚本 vim /usr/local/src/nginx_check.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l` #统计nginx进程是否存在
if [ $A -eq 0 ];then #为0,表明nginx停止了
/usr/local/nginx/sbin/nginx #尝试重启nginx
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #nginx重启失败,则keepalived自杀,进行VIP转移
killall keepalived #杀掉,vip就漫游到另一台机器
fi
fi
2) 修改keepalived配置,添加脚本 vim /etc/keepalived/keepalived.conf
vrrp_script nginx_check{
script "/usr/local/src/nginx_check.sh"
interval 2 #检测脚本执行间隔时间 单位秒
}
track_script{
nginx_check #调用检测脚本
}
三、启动nginx和keepalived
systemctl start nginx
systemcat start keepalived
