nginx+keepalived实现web的高可用

 

现在现有两台搭建好的nginx
nginx1:192.168.184.161
nginx2:192.168.184.162
vip:192.168.184.163

nginx1:


yum -y install keepalived
vim  /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
 router_id 1                                      #设备在组中的标识,设置不一样即可
 }

vrrp_script chk_nginx {                        #健康检查
 script "/etc/keepalived/ck_ng.sh"      #检查脚本
 interval 2                                          #检查频率.秒
 weight -5                                         # priority减5
 fall 3                                                #失败三次
 }

vrrp_instance VI_1 {                        #VI_1。实例名两台路由器相同。
    state MASTER                            #主或者从状态
    interface ens33                          #监控网卡
    mcast_src_ip 192.168.184.161          #心跳源IP
    virtual_router_id 55                    #虚拟路由编号,主备要一致。
    priority 100                                #优先级
    advert_int 1                                #心跳间隔

    authentication {                    #秘钥认证(1-8位)
        auth_type PASS
        auth_pass 123456
    }

    virtual_ipaddress {                 #VIP
    192.168.184.163
        }

  track_script {                       #引用脚本
       chk_nginx
    }

}

使用killall命令:
 yum install psmisc
vim /etc/keepalived/ck_ng.sh

#!/bin/bash
#检查nginx进程是否存在
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
#尝试启动一次nginx,停止5秒后再次检测
    service nginx start
    sleep 5
    counter=$(ps -C nginx --no-heading|wc -l)
    if [ "${counter}" = "0" ]; then
#如果启动没成功,就杀掉keepalive触发主备切换
        killall keepalived
    fi
fi

chmod +x /etc/keepalived/ck_ng.sh
systemctl enable keepalived.service
systemctl start nginx 
systemctl start keepalived

nginx2:


yum -y install keepalived
vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
 router_id 2
 }

vrrp_script chk_nginx {
 script "/etc/keepalived/ck_ng.sh"
 interval 2
 weight -5
 fall 3
 }

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    mcast_src_ip 192.168.184.162
    virtual_router_id 55
    priority 99
    advert_int 1

    authentication {
        auth_type PASS
        auth_pass 123456
    }

    virtual_ipaddress {
    192.168.184.163
        }

  track_script {
       chk_nginx
    }

}

使用killall命令:
 yum install psmisc
vi /etc/keepalived/ck_ng.sh

#!/bin/bash
#检查nginx进程是否存在
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
#尝试启动一次nginx,停止5秒后再次检测
    service nginx start
    sleep 5
    counter=$(ps -C nginx --no-heading|wc -l)
    if [ "${counter}" = "0" ]; then
#如果启动没成功,就杀掉keepalive触发主备切换
        killall keepalived
    fi
fi

systemctl enable keepalived.service
chmod +x /etc/keepalived/ck_ng.sh
systemctl start nginx 
systemctl start keepalived

ip a 查看两台机器有没有vip,没有的话重启一下,是个bug。

浏览器访问vip看看显示的是那个网页
关闭nginx1看看vip在那个地方
测试完成,keepalived保证了nginx的高可用
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值