keepalived 高可用 keepalived+nginx

keepalived高可用 HA
    

原理
    Virtual Route Redundancy Protocol,即虚拟路由冗余协议。
    它主要是实现路由器高可用的容错协议。
    将多台路由器组成路由器组(Router Group),组中包括Master及Backup,
    在外部看来就像一台路由器,拥有一个VIP。Master会发送组播消息,
    当Backup在指定的时间收不到vrrp包就会认为master宕掉,
    然后通过VRRP协议再次竞选新的路由器当Master,从而保证路由器的高可用。

keepalived+nginx

nginx1    12.18.130.139      master
nginx2    12.18.130.138      backup
 路由器vip    12.18.130.137


nopreempt 仅在身份相同才能生效 ( master   backup)

=======================
测试
关闭master的keepalived,vip会飘逸到backup。完全替代master的功能,且用户无感知
缺点:
    当master重新启动,则vip会再次飘逸,回到master
    相当于人为制造了一次宕机
    
解决方案:
    多台都是BACKUP,且配置nopreempt。
    
-------------------------------------    
多台都是BACKUP ,解决了抢占问题,
但是如果nginx宕机,则keepalived运行,vip不会飘逸

为服务增加存活检测,当nginx服务宕机,则自动关闭keepalived,让vip发生飘逸

vim  /etc/keepalived/nginx_check.sh
curl http://localhost:80 &> /dev/null
if [ $? -ne 0 ];then
    sysetmctl stop keepalived
fi
# chmod u+x /etc/keepalived/nginx_check.sh
 

一、nginx 1 部署配置keepalived服务

1、部署web服务


#  yum -y install nginx 


1.1 修改nginx1    12.18.130.138   配置文件配置页面

# vim /etc/nginx/conf.d/default.conf

server {
   listen 80;
   server_name _;

   location / {
      root /wed/xxy;
     index  index.html index.htm;

  }

}

1.2 创建发布目录

# mkdir -pv /wed/xxy

1.3 写发布目录内容

# vim /wed/xxy/index.html

1.4 重启nginx

# systemctl restart nginx

2、在nginx1部署keepalived服务

# yum -y install keepalived 
# mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id director139            
}

vrrp_script check_nginx {
   script "/etc/keepalived/nginx_check.sh"     #脚本
   interval 1
}

vrrp_instance VI_1 {
    state MASTER     
    nopreempt                    
    interface ens33                     # 网卡
    virtual_router_id 80
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
       12.18.130.137
    }

 track_script {
        check_nginx
    }
}

3.编写刷新脚本


vim  /etc/keepalived/nginx_check.sh
curl http://localhost:80 &> /dev/null
if [ $? -ne 0 ];then
    sysetmctl stop keepalived
fi
# chmod u+x /etc/keepalived/nginx_check.sh
 

二、在nginx2上部署keepalived服务

1、部署web服务


#  yum -y install nginx 


1.1 修改nginx1    12.18.130.139   配置文件配置页面

# vim /etc/nginx/conf.d/default.conf

server {
   listen 80;
   server_name _;

   location / {
      root /wed/xxy;
     index  index.html index.htm;

  }

}

1.2 创建发布目录

# mkdir -pv /wed/xxy

1.3 写发布目录内容

# vim /wed/xxy/index.html

1.4 重启nginx

# systemctl restart nginx

2、在nginx2部署keepalived服务

# yum -y install keepalived 
# mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id director139            
}

vrrp_script check_nginx {
   script "/etc/keepalived/nginx_check.sh"     #脚本
   interval 1
}

vrrp_instance VI_1 {
    state MASTER     
    nopreempt                    
    interface ens33                     # 网卡
    virtual_router_id 80
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
       12.18.130.137
    }

 track_script {
        check_nginx
    }
}

3.编写刷新脚本


vim  /etc/keepalived/nginx_check.sh
curl http://localhost:80 &> /dev/null
if [ $? -ne 0 ];then
    sysetmctl stop keepalived
fi
# chmod u+x /etc/keepalived/nginx_check.sh

三、在客户端访问或浏览器访问

vip        12.18.130.137

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

邢函数

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

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

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

打赏作者

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

抵扣说明:

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

余额充值