Keepalived实现Nginx高可用

Keepalived安装可参考Mysql+Keepalived实现双主热备

一、Master上的keepalived.conf

global_defs {
	router_id LVS_LEVEL1	#主服务器名称
}
 
vrrp_script check_run {
   script "/usr/local/src/check_nginx.sh"
   interval 5				#5秒执行一次脚本
}
 
vrrp_instance VI_1 {
    state MASTER			#主服务器
    interface eth0			#承载VIP地址到物理接口
    virtual_router_id 51	#虚拟路由器ID号,每个热播组保持一致
    priority 100			#优先级,数值越大优先级越高
    advert_int 1			#检查间隔,默认为1s
    authentication {		#认证信息,每个热播组保持一致
        auth_type PASS      #认证类型
        auth_pass 1111		#密码字串
    }
    virtual_ipaddress {
        192.168.0.200		#VIP地址(内网地址)
    }
    track_script {
        check_run
    }
}

二、Backup上的keepalived.conf

global_defs {
	router_id LVS_LEVEL2	#备份服务器名称
}
vrrp_script check_run {
	script "/usr/local/src/check_nginx.sh"
	interval 5				#5秒执行一次脚本
}
vrrp_instance VI_1 {
    state BACKUP			#备份服务器
    interface eth0			#承载VIP地址到物理接口
    virtual_router_id 51	#虚拟路由器ID号,每个热播组保持一致
    priority 50				#优先级,数值越大优先级越高
    advert_int 1			#检查间隔,默认为1s
    authentication {		#认证信息,每个热播组保持一致
        auth_type PASS      #认证类型
        auth_pass 1111		#密码字串
    }
    virtual_ipaddress {
        192.168.0.200       #VIP地址(和主服务器设置一样)
    }
    track_script {
        check_run
    }
}

三、Nginx检测脚本check_nginx.sh

#!/bin/bash
 
A=`ps -C nginx --no-header |wc -l`
#判断nginx是否宕机,如果宕机,尝试重启
if [ $A -eq 0 ];then
    /usr/local/nginx/sbin/nginx
    #等待一会再次检查nginx,如果没有启动成功,则停止keepalived,使其启动备用机
    sleep 5
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi
chmod +x /etc/keepalived/nginx_check.sh
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

z.haoui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值