Nginx系列(三)-Keepalive热备高可用

4 篇文章 0 订阅
1 篇文章 0 订阅

Nginx系列(三)-Keepalive热备高可用

上一篇: Nginx系列(二)-配置文件

下一篇: Nginx系列(四)-安全认证

一、 介绍

1. 当nginx作为后端部署架构中最前端的负载均衡时,随着访问量和并发量的日益增长.为了防止入口的nginx宕机,
我们需要做双主高可用.
2. 这里我们是采用的keepalived的vip飘移来解决nginx的单点问题,实现工作节点的快速切换.
3. vip就是虚拟ip,这个大家自行百度哈.但是这种方式好像只在公司自建机房的时候才会用到,因为如果都上云的
话,云服务商是不提供vip的,因为他们有自己的负载高可用服务方案.

二、 部署

2.1 机器准备

角色ip
master192.168.3.16
backup192.168.3.17
vip(这个不是机器,只是个ip,同一网段)192.168.3.18
core 测试程序192.168.3.15
1. 准备三台机器,master和backup提前把nginx安装好.
2. 至于vip那一台则不需要,只需要保证vip能ping通就好
3. core测试程序那台部署两个测试api程序即可

2.2 准备工作

  1. 准备core程序并运行,为了方便我们测试,我们将分别部署两套并用主、备nginx分别来代理

在这里插入图片描述
在这里插入图片描述

  1. nginx配置文件示例
location /test {
            proxy_pass http://192.168.3.15:12313; #两台nginx上指定这个来代理
            root   html;
            index  index.html index.htm;
        }
  1. 分别在3.16、3.17上安装nginx并代理到3.15
    在这里插入图片描述
    在这里插入图片描述

2.3 下载、启动keepalived

1. yum install nginx keepalived pcre-devel -y #下载安装
2. cp /etc/keepalived/keepalived.conf keepalived.conf.bak #备份配置文件
3. 删除keepalived.conf文件中多余的配置,保留下面
4. 从节点的 state --> backup , priority ---> 比主节点低.
! Configuration File for keepalived

global_defs {
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
vrrp_script check_nginx {
    script "/etc/keepalived/check_nginx.sh"
}
vrrp_instance VI_1 {
    state MASTER # 这个是主节点
    interface eth0 #网卡
    virtual_router_id 51 
    priority 100 #权重
    advert_int 1 
    authentication {# 认证配置,主从节点需要一致
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.3.18 # vip
    }
    track_script {
        check_nginx
    } 
}
# 监控nginx的脚本
cat > /etc/keepalived/check_nginx.sh  << "EOF"
#!/bin/bash
count=$(ss -antp |grep 80 |egrep -cv "grep|$$") # 我们监听80端口

if [ "$count" -eq 0 ];then
    exit 1
else
    exit 0
fi
EOF
chmod +x /etc/keepalived/check_nginx.sh # 给权限

systemctl start keepalived 启动.

2.4 查看运行是否正常

  1. 检查vip是否成功配置,下图可以看出来,3.16是我们master-nginx节点,下面已经存在了3.18的vip.
    而3.7 nginx-备节点是没有3.18的vip.说明vip成功.
    在这里插入图片描述
  2. 通过vip来访问,我们可以看到,keepalived帮我们代理到了nginx-master节点,也就是3.16.

在这里插入图片描述
3. 此时我们把3.16的keepalive停掉 systemctl stop keepalived,此时vip已经飘移到了3.17的 nginx-备节点了.
在这里插入图片描述

  1. 此时我们访问一下

在这里插入图片描述

三、 总结

1.  上面步骤我们测试了keepalived的vip飘移,能自动的帮我们把访问流量从 192.168.3.16切换到
192.168.3.17的nginx上
2. 但是如果nginx宕机了,那么就是哪个nginx的检测脚本起作用了.
3. 博主没有针对nginx宕机来测试,留给大家自己测了.但是会有一定时间的延时,不会想keepalived宕机
切换那么快.
4. 如有不对,欢迎指正.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nginx可用可以通过结合keepalive来实现。首先,需要安装keepalive。可以使用以下命令进行安装: ``` yum install -y popt-devel cd /usr/local/src tar zxvf keepalived-1.2.2.tar.gz cd keepalived-1.2.2 ./configure --prefix=/ make make install ``` 接下来,需要创建一个检查nginx状态的脚本。可以使用以下命令创建一个名为check_nginx.sh的脚本文件: ``` vi /root/check_nginx.sh ``` 在脚本中,可以使用以下代码来检查nginx的运行状态: ``` if [ "$(ps -ef | grep "nginx:master process" | grep -v grep)" == "" ] then service nginx start else echo "nginx is running" fi ``` 通过keepalive和该脚本,可以实现在nginx关闭时自动启动nginx,保证nginx可用性。这样即使nginx出现问题,keepalive会自动启动nginx,确保服务的连续性和可用性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [nginx+keepalive实现可用负载均衡](https://blog.csdn.net/YABIGNSHI/article/details/52038332)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [keepalived+nginx可用](https://download.csdn.net/download/weixin_38548421/14057272)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值