Linux 中怎么使用 Apache 配合 keepalived 实现高可用

浅墨君_7222

浅墨君_7222

2026-08-25

993人浏览

原创

apache 配合 keepalived 实现高可用的核心思路是:用 keepalived 管理虚拟 ip(vip),主节点正常时 vip 绑定其上提供服务,故障时自动漂移至备节点,实现秒级无感知切换;需确保两台服务器 apache 服务一致、关闭防火墙/selinux、时间同步、配置相同 virtual_router_id 和认证密码,仅 state(master/backup)与 priority 不同。

linux 中怎么使用 apache 配合 keepalived 实现高可用

Apache 配合 Keepalived 实现高可用,核心思路是:用 Keepalived 管理一个虚拟 IP(VIP),让两台(或以上)运行相同 Apache 服务的服务器对外表现为“一台”,当主节点故障时,VIP 自动漂移到备节点,用户无感知地继续访问。这不是负载均衡,而是服务入口的高可用保障。


关键前提与准备

  • 两台服务器(例如 node1 和 node2),均安装并运行 Apache,提供完全一致的 Web 内容(静态页、配置、端口等)
  • 使用同一内网网段(如 192.168.1.0/24),确保二层互通
  • 关闭防火墙和 SELinux(生产环境建议改用白名单策略,但实验阶段可直接关闭)
    systemctl stop firewalld && setenforce 0
  • 时间同步(避免 VRRP 心跳异常)
    chronyd -q 'server ntp1.aliyun.com iburst'

Apache 服务一致性配置

确保两台服务器的 Apache 完全等效:

  • 启用相同端口(默认 80,不建议改)
  • 主页内容一致(比如都返回 echo "node1" > /var/www/html/index.html 和 echo "node2",便于后续验证 VIP 漂移)
  • 启动服务并设为开机自启
    systemctl enable --now httpd
  • 测试直连:分别用浏览器或 curl 访问 http://192.168.1.10 和 http://192.168.1.11,确认都能正常响应

Keepalived 安装与主备配置

使用 yum 安装(CentOS/RHEL):

yum install -y keepalived

编辑 /etc/keepalived/keepalived.conf,两台机器配置仅 state 和 priority 不同:

主节点(node1)配置示例:

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载
global_defs {
    router_id LVS_MASTER
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0              # 实际网卡名,用 ip a 确认
    virtual_router_id 51
    priority 100                # 数值越高优先级越高
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111          # 主备必须一致
    }
    virtual_ipaddress {
        192.168.1.100/24       # VIP,对外服务地址
    }
}

备节点(node2)配置示例:

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51       # 必须与主节点相同
    priority 99                # 必须低于主节点
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100/24
    }
}

✅ 注意:virtual_router_id 在同一组 Keepalived 节点中必须唯一且一致;priority 差值建议 ≥ 3,避免脑裂;advert_int 是心跳间隔(秒),默认 1 秒足够灵敏。

启动服务:

systemctl enable --now keepalived

验证高可用效果

  • 客户端执行 curl http://192.168.1.100 → 应返回主节点内容(如 node1)
  • 手动停止主节点 Keepalived:systemctl stop keepalived
  • 等待 1–3 秒,再次 curl http://192.168.1.100 → 应返回备节点内容(如 node2)
  • 查看备节点 ip addr show eth0,确认 VIP 已绑定到其网卡
  • 恢复主节点后,若配置为抢占模式(默认开启),VIP 会自动切回主节点

? 补充:如需禁用抢占,可在 vrrp_instance 块中添加 nopreempt(仅适用于 BACKUP 节点),并确保主节点 priority 更高且始终运行。


常见问题排查要点

  • VIP 无法 ping 通?检查是否启用了 vrrp_strict(注释掉该行,它会限制多播/VIP 绑定)
  • 切换延迟长?确认 advert_int 和 preempt_delay(如有)设置合理,网络无丢包
  • 日志在哪看?journalctl -u keepalived -f 或 /var/log/messages
  • 多业务隔离?可定义多个 vrrp_instance,每个绑定不同 VIP 和 virtual_router_id

不复杂但容易忽略细节。

相关文章

keep
keep

Keep是一款健身安排,无论是想减肥塑形或增肌,还是寻找健身跑步瑜伽计步等训练计划,你可以随时随地选择课程进行训练!权威教练视频教学,健身干货自由分享!有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

linux apache

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

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

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

2023.08.15

437

5

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

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

2023.09.08

900

5

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

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

2023.09.19

2792

5

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

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

2023.10.09

936

5

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

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

2023.10.17

829

5

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

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

2023.10.17

434

3

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

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

2023.10.18

2536

4

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

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

2023.10.20

4692

4

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

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

2023.10.20

747

5

热门下载

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

精品课程

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

共0课时 | 0人学习

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

共0课时 | 0人学习