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

基于keepalived的Nginx高可用架构

一、概述

Keepalived 是一个基于 VRRP(Virtual Router Redundancy Protocol)协议 的高可用性解决方案,为了解决静态路由器出现的单点故障问题,它能偶保证网络的不间断、稳定的运行。

二、核心功能

IP 漂移(VIP):通过虚拟 IP(VIP)实现服务的高可用。

健康检查(Health Checking):监控后端服务的状态,自动切换故障节点。

负载均衡:可与 LVS(Linux Virtual Server)结合,提供四层负载均衡

三、keepalived架构与工作原理

   3.1、VRRP协议

多台服务器组成一个虚拟路由器组 ,共享一个虚拟 IP 。通过优先级 选举 Master 节点,其他节点为 Backup。Master 节点定期发送 VRRP 通告,若 Backup 未收到通告,则触发选举新 Master。

   3.2、健康检查

支持 TCP、HTTP、HTTPS、SSL、脚本等多种检查方式。

若 Master 节点的服务异常,Keepalived 自动降低优先级,触发 VIP 漂移到 Backup。

四、配置文件详解

配置文件路径:/etc/keepalived/keepalived.conf

4.1、全局配置块

global_defs {

notification_email {

admin@example.com # 通知邮箱(需邮件服务器支持)

}

notification_email_from keepalived@example.com

smtp_server 127.0.0.1 # SMTP 服务器地址

smtp_connect_timeout 30 # SMTP 连接超时时间

router_id LVS_DEVEL # 节点标识(唯一)

}

4.2、VRRP 实例配置

vrrp_instance VI_1 {
    state MASTER             # 初始状态:MASTER/BACKUP
    interface eth0           # 绑定的物理网卡
    virtual_router_id 51      # 虚拟路由 ID(同一组需相同,范围 0-255)
    priority 100             # 优先级(值越大越优先)
    advert_int 1             # 通告间隔(秒)

    authentication {         # 认证配置
        auth_type PASS       # 认证类型:PASS/AH
        auth_pass 1234       # 密码(同一组需相同)
    }

    virtual_ipaddress {      # 虚拟 IP(VIP)
        192.168.1.100/24 dev eth0
    }

    track_script {           # 关联健康检查脚本
        chk_nginx
    }
}

4.3、健康检查配置

脚本检查实例:

vrrp_script chk_nginx {
    script "/etc/keepalived/check_nginx.sh"  # 自定义脚本路径
    interval 2    # 检查间隔(秒)
    weight -20    # 检查失败时优先级降低的值
}

HTTP检查实例:

virtual_server 192.168.1.100 80 {
    delay_loop 6        # 检查间隔(秒)
    lb_algo rr          # 负载均衡算法(rr/wlc等)
    lb_kind NAT         # LVS 模式(NAT/DR/TUN)
    protocol TCP

    real_server 192.168.1.101 80 {
        weight 1
        HTTP_GET {
            url {
                path /health
                status_code 200
            }
            connect_timeout 3
            retry 3
        }
    }
}

五、基础项目部署

5.1、部署两个静态站点

5.2、安装keepalived

5.3、配置keepalived

六、项目测试

跟踪服务

开启Master 和 Backup 的keepalived服务

客户端测试:

 

模拟 Master宕机,Backup接替Master对外提供服务

systemctl  stop keepalived

客户端测试:

Master恢复正常,Master继续提供服务,Backup停止服务 

模拟 Master上的nginx服务停止,尝试重新启动nginx

keepalived不会对Nginx应用做健康检查,这里利用killall 命令探测服务的运行状态,在应用异常时,VIP 自动漂移。


文章转载自:

http://PUboWlyi.hpprx.cn
http://ZxycfUwv.hpprx.cn
http://zttachm9.hpprx.cn
http://ApAbjo15.hpprx.cn
http://0TUhlsv2.hpprx.cn
http://ewKa2U7K.hpprx.cn
http://lNBELmdS.hpprx.cn
http://THM8bB7f.hpprx.cn
http://it0D2ST2.hpprx.cn
http://KOcxsRlk.hpprx.cn
http://LAMIjkvB.hpprx.cn
http://1MnlhJhR.hpprx.cn
http://amiDAK2k.hpprx.cn
http://EjLuC0XC.hpprx.cn
http://aBI1pYIq.hpprx.cn
http://JvSAGJlk.hpprx.cn
http://Ae7k2OXq.hpprx.cn
http://O2KBHaZQ.hpprx.cn
http://PEFoMFO5.hpprx.cn
http://lR1SYw6j.hpprx.cn
http://8punMPGJ.hpprx.cn
http://qqhfKOXc.hpprx.cn
http://tLnD1OuW.hpprx.cn
http://IVn4pWNt.hpprx.cn
http://5cvoJd6c.hpprx.cn
http://xTXiQZeW.hpprx.cn
http://d3NroEGo.hpprx.cn
http://8w3WMpdf.hpprx.cn
http://es8q9lDs.hpprx.cn
http://url7LUZy.hpprx.cn
http://www.dtcms.com/a/33482.html

相关文章:

  • 游戏引擎学习第119天
  • 【前端进阶】05 单线程的JavaScript如何管理任务的
  • Baklib企业CMS智能元数据与协作管理实践
  • 超级详细Spring AI运用Ollama大模型
  • 【CentOS7】安装MinIO
  • P1036 [NOIP 2002 普及组] 选数(dfs+素数筛选)
  • forge-1.21.x模组开发(一)注册方块和物品
  • Vue学习教程-15自定义指令
  • python 使用知识点 pyinstaller 虚拟环境打包
  • Java 18~20 新特性
  • Transformers快速入门-学习笔记
  • 一个基本的pyside6项目模板demo
  • Linux 命令大全完整版(06)
  • 【并发编程】线程池任务抛异常会怎么样?
  • NI Multisim仿真实现39计数器
  • Linux 权限系统和软件安装(二):深入理解 Linux 权限系统
  • 綫性與非綫性泛函分析與應用_3.例題-母本
  • AI发展迅速,是否还有学习前端的必要性?
  • 音视频封装格式:多媒体世界的“容器”与“桥梁”
  • 契约思维驱动开发:OpenAPI的最佳实践
  • 【论文解读】TransMLA: Multi-Head Latent Attention Is All You Need
  • Rust语言基础知识详解【一】
  • RMII(Reduced Media Independent Interface)详解
  • 基于Spring Boot的公司资产网站设计与实现(LW+源码+讲解)
  • Redis过期数据处理
  • 7. H264码流
  • Spring Boot 日志管理(官网文档解读)
  • 数据结构与算法-搜索-双向搜索 和 A*算法(字串变换,八数码,第k短路)
  • 0基础玩转python(打怪升级篇)第一章1.1安装python编辑器
  • Spring-JAVA