当前位置: 首页 > news >正文

Nginx-keepalived-高可用

Nginx 高可用 通常 借助 Keepalived 实现, Keepalived 能通过 VRRP (虚拟路由冗余协议)让多个 Nginx 服务器 组成一个 热备集群,当主服务器故障时自动切换到备用服务器,保障服务不间断。

一、环境准备

角色IP 地址
主服务器(Master)192.168.159.129
备用服务器(Backup)192.168.159.130
虚拟IP(VIP)192.168.159.120
Keepalived版本1.4.5

二、源码安装 Keepalived 服务

2.1 在节点 Mater 上安装 keepalived

# 安装依赖
yum install openssl-devel libnl3-devel ipset-devel -y
yum install libnfnetlink-devel -y

# 下载源码
wget https://www.keepalived.org/software/keepalived-1.4.5.tar.gz

# 解压
tar -zxvf  keepalived-1.4.5.tar.gz

cd keepalived-1.4.5

./configure --prefix=/usr/local/keepalived

make && make install

2.1.1 配置文件配置

# 配置文件 keepalived.conf 配置
mkdir -p /etc/keepalived

vim keepalived.conf

# 配置文件内容
! Configuration File for keepalived

global_defs {
   router_id NGINX_MASTER
   script_user root
   enable_script_security
}


vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
        mcast_src_ip 192.168.159.129
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.159.200
    }
}

2.1.2 把keepalived 配置成系统命令

  • 创建 服务文件

    vim /etc/systemd/system/keepalived.service
    
    [Unit]
    Description=Keepalived High Availability Service
    After=network.target
    
    [Service]
    Type=forking
    PIDFile=/var/run/keepalived.pid
    ExecStart=/usr/local/keepalived/sbin/keepalived --pid=/var/run/keepalived.pid --config=/etc/keepalived/keepalived.conf
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=process
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    
  • 重新加载 Systemd 配置并启动服务

    sudo systemctl daemon-reload
    sudo systemctl start keepalived
    sudo systemctl enable keepalived
    
  • 检查服务状态

    sudo systemctl status keepalived
    

2.2 在节点 Backup 上安装 Keepalived

安装方法与 Master 一致, 配置文件 keepalived.conf 需要修给为以下

! Configuration File for keepalived

global_defs {
   router_id NGINX_BACKUP
   script_user root
   enable_script_security
}


vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    mcast_src_ip 192.168.159.130
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.159.200
    }
}

三、启动 keepalived 服务验证 VIP 是否挂起

在这里插入图片描述

四、安装 Nginx 服务器

pass

五、测试 Nginx

在 Master 上的 Nginx 的 HTML配置 MASTER

在 Backup 上的 Nginx 的 HTML 配置 Buckup

5.1 访问虚拟 IP 192.168.159.200

在这里插入图片描述

5.2 把 Master 的 keepalived 关闭,模拟服务故障

在这里插入图片描述
发现 VIP 192.168.159.200 切换到 备用服务器,访问 192.168.159.120
在这里插入图片描述

相关文章:

  • cpp经典数论问题
  • celsius与Fahrenheit
  • C++ STL 详解 ——list 的深度解析与实践指南
  • leetcode120.三角形最小路径
  • 小刚说C语言刷题——第16讲 switch语句
  • C++11详解
  • Spring Boot 与 TDengine 的深度集成实践(三)
  • 利用C++编写操作OpenCV常用操作
  • 编程速递-Delphi is 30 Delphi诞生30周年!
  • MySQL-SQL-DQL语句、DQL基本查询、DQL条件查询、DQL分组查询、聚合函数、DQL排序查询、DQL分页查询
  • 【勒让德公式】欧拉筛-阶乘分解
  • 【硬件开发技巧】如何通过元器件丝印反查型号
  • vector模拟实现(2)
  • 蓝桥杯2024年第十五届省赛真题-拔河
  • 专栏:区块链入门到放弃查看目录
  • el-tabs添加按钮增加点击禁止样式
  • ubuntu 配置固定ip
  • getline(cin, )
  • Qt音频输出:QAudioOutput详解与示例
  • 玄机-apache日志分析
  • 广州网站建设系统/seo入门教学
  • 个人主页自助建站/seo排名工具有哪些
  • 网站规划问题/百度云登录入口
  • 最好的网站建设/教育培训网站大全
  • 郑州做网站公司排/打开网站搜索
  • 网站推广一站式服务/公关