nginx+keepalived双主模式双主热备

这篇具有很好参考价值的文章主要介绍了nginx+keepalived双主模式双主热备。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、双主模式原理

1. nginx+keepalived主备模式缺点

2. 主备模式和双主模式的区别

二、配置文件

1. nginx01的keepalived.conf

2. nginx02的keepalived.conf

3. 检测nginx存活脚本文件nginx_check.sh

三、测试准备

1. 启动nginx01、nginx02

2. 启动keepalived

3. 查看网卡信息

四、测试

1. 测试VIP访问

2. 测试nginx检测脚本

3. 模拟nginx01宕机

4. 模拟nginx01修复宕机


主机名 真实IP VIP
nginx01 11.0.1.31 11.0.1.29
nginx02 11.0.1.32 11.0.1.30

一、双主模式原理

1. nginx+keepalived主备模式缺点

双机主备存在一个问题,不管keepalived存活在哪台设备上,总有一台设备是空闲的,资源利用率并不高,双主模式可以很好解决该问题。

双主模式可以实现以下效果:

11.0.1.29 VIP1 默认访问11.0.1.31

11.0.1.30 VIP2 默认访问11.0.1.32

当其中一个nginx宕机,两个虚拟IP仍然可以正常使用,此时存活的nginx同是绑定2个虚拟IP

2. 主备模式和双主模式的区别

双主与主备的核心区别就是,主备模式只有一个vrrp实例(默认抢占模式:1个master1个backup),双主机需要两个虚拟IP,两个vrrp实例,两者互为主备,vrrp1实例中(nginx01为master,nginx02为backup)、vrrp2实例中(nginx01为backup,nginx02为master)

二、配置文件

1. nginx01的keepalived.conf

[root@nginx01 sbin]# cat /etc/keepalived/keepalived.conf
global_defs {
    router_id real-server1
    script_user root
    enable_script_security
 }
 
vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 2
}
  
vrrp_instance VI_1 {
     state MASTER
     interface ens33   
     virtual_router_id 151 
     priority 100 
     advert_int 5  
     authentication {
         auth_type  PASS
         auth_pass  1111
 
     }
     virtual_ipaddress {  
       11.0.1.29
     }
    
      track_script {                                                                                  
       chk_nginx
    }
 }
  
vrrp_instance VI_2 {
     state BACKUP
     interface ens33
     virtual_router_id 152
     priority 50
     advert_int 5
     authentication {
         auth_type  PASS
         auth_pass  2222
 
     }
     virtual_ipaddress {
         11.0.1.30
     }
 
    track_script {
    chk_nginx
    }
}

2. nginx02的keepalived.conf

[root@nginx02 sbin]# cat /etc/keepalived/keepalived.conf
global_defs {
    router_id real-server2
    script_user root
    enable_script_security
 }
 
vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 2
}
 
vrrp_instance VI_1 {
     state BACKUP
     interface ens33
     virtual_router_id 151
     priority 50
     advert_int 5
     authentication {
         auth_type  PASS
         auth_pass  1111
     }
     virtual_ipaddress {
       11.0.1.29
     }
    
      track_script {                                                                                  
       chk_nginx
    }
 }
 
vrrp_instance VI_2 {
     state MASTER
     interface ens33
     virtual_router_id 152
     priority 100
     advert_int 5
     authentication {
         auth_type  PASS
         auth_pass  2222
 
     }
     virtual_ipaddress {
         11.0.1.30
     }
 
    track_script {
    chk_nginx
    }
}

3. 检测nginx存活脚本文件nginx_check.sh

[root@nginx01 sbin]# cat /etc/keepalived/nginx_check.sh
#!/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    sleep 2
    counter=$(ps -C nginx --no-heading|wc -l)
    if [ "${counter}" = "0" ]; then
        systemctl stop keepalived
    fi
fi

三、测试准备

1. 启动nginx01、nginx02

cd /usr/local/ngins/sbin
./nginx

请确保真实IP可以访问到nginx01、nginx02

nginx+keepalived双主模式双主热备,nginx,nginx,运维

2. 启动keepalived

systemctl start keepalived

3. 查看网卡信息

nginx01的网卡信息

[root@nginx01 sbin]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:60:05:0e brd ff:ff:ff:ff:ff:ff
    inet 11.0.1.31/24 brd 11.0.1.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 11.0.1.29/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::a344:1c87:5caf:42cd/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

nginx+keepalived双主模式双主热备,nginx,nginx,运维

nginx02的网卡信息

[root@nginx02 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:b9:97:26 brd ff:ff:ff:ff:ff:ff
    inet 11.0.1.32/24 brd 11.0.1.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 11.0.1.30/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::4ae3:fc87:6344:7062/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

nginx+keepalived双主模式双主热备,nginx,nginx,运维

可以看出VIP成功绑定到各自的真实服务器IP

四、测试

1. 测试VIP访问

nginx+keepalived双主模式双主热备,nginx,nginx,运维

2. 测试nginx检测脚本

关闭nginx01上的nginx服务,查看脚本是否可以正常重启nginx

[root@nginx01 sbin]# ./nginx -s stop
[root@nginx01 sbin]# ps -aux | grep nginx
root       3598  0.0  0.0  20540   612 ?        Ss   22:48   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody     3600  0.0  0.0  20984  1304 ?        S    22:48   0:00 nginx: worker process
root       3650  0.0  0.0 112824   988 pts/0    R+   22:48   0:00 grep --color=auto nginx

重启成功,脚本生效。

3. 模拟nginx01宕机

停止nginx01上的keepalived进程或者直接将nginx01关机(效果一样),模拟nginx01宕机

[root@nginx01 sbin]# systemctl stop keepalived

nginx02网卡信息

nginx+keepalived双主模式双主热备,nginx,nginx,运维

nginx01网卡信息

nginx+keepalived双主模式双主热备,nginx,nginx,运维

访问nginx01的VIP11.0.1.29,但实际是11.0.1.32响应,因为VIP1漂移到nginx02上,此时nginx02同时绑定VIP1、VIP2。即使nginx01宕机,ngin01的VIP11.0.1.29仍然可以正常使用

nginx+keepalived双主模式双主热备,nginx,nginx,运维

4. 模拟nginx01修复宕机

重启nginx01的keepalived(或开机)

nginx+keepalived双主模式双主热备,nginx,nginx,运维

访问恢复正常 

nginx+keepalived双主模式双主热备,nginx,nginx,运维

模拟nginx02宕机效果也是一样,不再重复实验。

参考文档: 

玩转企业集群运维管理系列(十二):Keepalived 双主、非抢占模式及脑裂问题详解-腾讯云开发者社区-腾讯云文章来源地址https://www.toymoban.com/news/detail-793863.html

到了这里,关于nginx+keepalived双主模式双主热备的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • keepalived双机热备,keepalived+lvs(DR)

    本节主要学习了keepalived+lvs的作用和配置方法主要配置调度器和web节点,还有keepalived的双击热备,主要内容有概述,安装,功能模块,配置双击热备,验证方法,双击热备的脑裂现象和VIP无法通信。 目录  keepalived双机热备 一、概述 原理 二、安装 1.yum install -y keepalived 2.配置

    2024年02月11日
    浏览(38)
  • Keepalived 双机热备

    本章主要内容: Keepalived 双机热备基础知识 学会构建双机热备系统 学会构建LVS+HA 高可用群集         在这个高度信息化的IT时代,企业的生产系统,业务运营,销售和支持,以及日常管理等环节越来越依赖于计算机和服务,对于高可用(HA)技术的应用需求不断提高,以便

    2024年01月17日
    浏览(41)
  • Keepalived双机热备

    学会构建双机热备系统 学会构建LVS+HA高可用群集         Keepalived的官方网站位于http://www.keepalived.org/,本章将以yum方式讲解Keepalived的安装、配置和使用过程。在非LVS群集环境中使用时,Keepalived也可以作为热备软件使用         Keepalived采用VRRP(虚拟路由冗余协议)热备份协

    2024年01月17日
    浏览(36)
  • Linux--Keepalived 双机热备

    7.1 Keepalived 双机热备基础知识        Keepalived起初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换(Failover) 和健康检查査(Health Checking)功能一一判断LVS 负载调度器、节点服务器的可用性,及时隔离并替 换为新的服务器,当故障主机恢复后将其重新加入群集。

    2024年03月23日
    浏览(39)
  • 【Nginx】Linux keepalived+nginx实现主从模式

    双机高可用方法目前分为两种: 主从模式:一台主服务器和一台从服务器,当配置了虚拟vip的主服务器发送故障时,从服务器将自动接管虚拟ip,服务将不会中断。但主服务器不出现故障的时候,从服务器永远处于浪费状态,对于服务器不多的网站,该方案不经济实惠。 主主

    2024年02月10日
    浏览(38)
  • 第 3 章 Keepalived 双机热备

    会构建双机热备系统 会构建 LVS+HA 高可用群集         在这个高度信息化的 IT 时代,企业的生产系统、业务运营、销售和支持,以及日常管理等环节越来越依赖于计算机信息和服务,对高可用(HA)技术的应用需求不断提高,以便提供持续的、不间断的计算机系统或网络

    2024年01月17日
    浏览(36)
  • Mysql8高可用之双主+keepalived

    利用keepalived实现Mysql数据库的高可用,Keepalived+Mysql双主来实现MYSQL-HA,我们必须保证两台Mysql数据库的数据完全一致,实现方法是两台Mysql互为主从关系,通过keepalived配置VIP,实现当其中的一台Mysql数据库宕机后,应用能够自动切换到另外一台Mysql数据库上去,保证系统的高可

    2024年02月07日
    浏览(34)
  • 【keepalived双机热备与 lvs(DR)】

    目录 一、概述 1.简介 2.原理 3.作用 二、安装 1.配置文件 2.配置项 三、功能模块 1.core 2.vrrp 3.check 四、配置双机热备 1.master 2.backup 五、验证 1.ping验证 2.服务验证 六、双机热备的脑裂现象 七、keepalived+lvs(DR) 1.作用 2.调度器配置 2.1 安装keepalived 2.2 安装ipvsadm 2.3 配置keepalive

    2024年02月11日
    浏览(36)
  • 深入浅出 -- 系统架构之Keepalived搭建双机热备

    Keepalived+重启脚本+双机热备搭建 ①首先创建一个对应的目录并下载 keepalived 安装包(提取码:s6aq)到 Linux 中并解压: ②进入解压后的 keepalived 目录并构建安装环境,然后编译并安装: ③进入安装目录的 /soft/keepalived/etc/keepalived/ 并编辑配置文件: ④编辑主机的 keepalived.conf

    2024年04月11日
    浏览(48)
  • mysql双主互从通过KeepAlived虚拟IP实现高可用

    在mysql 双主互从的基础上, 架构图: Keepalived有两个主要的功能: 提供虚拟IP,实现双机热备 通过LVS,实现负载均衡 修改 keepalived 配置文件 keepalived.conf 检测xxx.sh check_mysql_port.sh 安装killall 命令 安装netstat 修改脚本xxx.sh权限 keepalived.conf 启动keepalived master slave 停止容器,使v

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包