Linux 中怎么在 Apache 中配置备用节点的故障自动切换

雨浩大大_3408

雨浩大大_3408

2026-09-06

310人浏览

原创

apache本身不执行故障自动切换,其热备依赖外部组件:一用mod_proxy_balancer配置status=+h实现http层热备;二用keepalived基于vrrp协议通过健康检查实现vip漂移。

linux 中怎么在 apache 中配置备用节点的故障自动切换

Apache 本身不执行“故障自动切换”,它不是集群管理器,而是被代理的后端服务或轻量级反向代理节点。所谓“备用节点自动切换”,实际依赖外部高可用组件(如 Keepalived、HAProxy)或 Apache 自身的 mod_proxy_balancer 健康探测机制来实现——二者路径不同,适用场景也不同。下面分两种主流方式说明:

一、用 mod_proxy_balancer 实现热备节点(Apache 兼任 LB)
适用于小规模、HTTP 层负载均衡,无需额外软件。

  • 确保启用必要模块:

    LoadModule proxy_module modules/mod_proxy.so  
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so  
    LoadModule proxy_http_module modules/mod_proxy_http.so  
    LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
  • 配置带 Hot Standby 的后端组:

    <proxy balancer:>
        BalancerMember http://192.168.1.10:8080 loadfactor=10 ping=3 timeout=5
        BalancerMember http://192.168.1.11:8080 loadfactor=10 ping=3 timeout=5
        BalancerMember http://192.168.1.12:8080 status=+H ping=3 timeout=5
    </proxy>
    ProxyPass / balancer://myapp/
    ProxyPassReverse / balancer://myapp/
  • 关键点:

    • status=+H 表示该节点仅在其余所有成员全部失败时才启用
    • ping=3 让 Apache 每 3 秒发一次 HEAD 请求探测存活
    • timeout=5 控制连接和响应超时,避免卡住请求
    • 不设 loadfactor 给热备节点,也不设为 0 —— +H 已隐含零流量语义
  • 验证方式:
    启用 /balancer-manager(仅限内网),访问后可见热备节点状态为 Hot Standby (H),且初始为 Stopped;主节点全部不可达后,状态自动变为 Up 并开始承接请求。

二、用 Keepalived 实现 VIP 漂移(Apache 作为后端服务)
适用于要求强一致性和秒级切换的生产环境,Apache 只需提供健康接口。

  • 在每台 Apache 服务器上部署轻量健康端点:

    echo "OK" > /var/www/html/health
    chmod 644 /var/www/html/health

    确保 curl -f http://127.0.0.1/health 返回 HTTP 200。

    Alpine Linux
    Alpine Linux

    获取最新发布版本;聚合最新版本架构

    下载
  • Keepalived 配置中加入自定义检查脚本(例如 /etc/keepalived/check_apache.sh):

    #!/bin/bash
    if systemctl is-active --quiet apache2 && curl -f http://127.0.0.1/health > /dev/null 2>&1; then
        exit 0
    else
        exit 1
    fi

    赋予可执行权限,并在 keepalived.conf 中引用:

    vrrp_script chk_http {
        script "/etc/keepalived/check_apache.sh"
        interval 2
        fall 2
        rise 2
    }
  • 主备节点通过 VRRP 协议竞争 VIP,当主节点上的 Apache 崩溃或健康检查失败,Keepalived 自动降权并释放 VIP,备机升为 Master 并接管流量。

  • 注意事项:

    • 关闭防火墙对 VRRP 协议(IP 协议号 112)的拦截
    • 设置 arp_ignore 和 arp_announce 防止 ARP 冲突
    • 双节点必须配置仲裁或非抢占模式(nopreempt),避免脑裂

不复杂但容易忽略。选哪种方式,取决于你当前架构角色:Apache 是代理层还是纯后端?前者用 status=+H,后者配 Keepalived 更稳妥。

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

880

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2692

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

896

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

809

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

414

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2436

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4492

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

727

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习