服务器高可用运维搭建核心是“故障可感知、服务可切换、数据不丢失”,需围绕rto/rpo目标识别单点,部署冗余节点并配置ntp、ssh互信、防火墙策略,按场景选用keepalived/pacemaker/商用中间件ha模块,结合真实健康检查与故障模拟验证切换有效性。

服务器高可用运维搭建不是堆硬件或装一堆软件,核心是“故障可感知、服务可切换、数据不丢失”。它需要从架构设计、组件选型、配置落地到验证闭环,每一步都影响最终的稳定性。以下是实际生产中可直接落地的关键环节:
针对Linux系统,phpStudy团队推出全网首家linux docker容器面板,只要一个命令,快速安装面板,在面板里可以自行选择软件版本,可以方便的进行安全配置,就算没有Linux基础也可以快速搭建和管理PHP服务器环境!
明确高可用目标与边界
先回答三个问题:
- 业务能容忍多长停机时间?(RTO)
- 最多能丢多少数据?(RPO)
- 哪些组件是单点?数据库、负载均衡器、中间件还是应用本身?
比如电商下单接口要求 RTO
部署冗余节点并打通基础通信
至少准备 2 台同构服务器(推荐 3 节点防脑裂),统一完成:
- 关闭防火墙或精确放行心跳端口(如 Corosync 默认 5404/5405,Keepalived VRRP 默认 112)
- 关闭 SELinux(
setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config) - 配置 NTP 时间同步(
chronyd或ntpd,误差需 - 建立 SSH 免密互信(
ssh-keygen && ssh-copy-id root@other-node),后续脚本和资源切换依赖此通道
选择并部署高可用管理框架
根据场景选型,不追求复杂:
- Web/代理类服务(Nginx、TongHttpServer)→ 用 Keepalived:轻量、成熟、VIP 漂移快。主节点
state MASTER,备节点state BACKUP,priority差值建议 ≥ 10,避免抖动。 - 通用服务+存储+数据库 → 用 Pacemaker + Corosync:支持多资源约束(如“VIP 和 MySQL 必须同节点”)。先装
pcs,pcs cluster setup初始化集群,再用pcs resource create定义 VIP、服务、文件系统等资源。 - 东方通 TongHttpServer 这类商用中间件 → 优先用其自带 HA 模块:配置
httpserverHA.conf中的浮动 IP,运行startHA.sh,依赖license.dat授权,管理端(默认 8000 端口)可视化启停服务与 HA。
配置健康检查与自动切换逻辑
不能只靠“心跳”,要检查真实服务能力:
- Keepalived:在
vrrp_script中定义检测脚本,例如curl -f http://127.0.0.1:80/health || exit 1,绑定到track_script,比单纯 ping 网卡更可靠。 - Pacemaker:为每个资源指定
ocf:heartbeat:apache或systemd:mariadb类 RA(Resource Agent),设置failure-timeout和on-fail=restart等策略。 - TongHttpServer:管理后台“高可用配置”页会自动读取网卡,但需确认
httpserverHA.conf中vip、interface、netmask与实际网络匹配,否则 VIP 无法绑定。
验证切换有效性,而非只看启动成功
启动服务只是第一步,必须模拟故障:
- 主节点执行
systemctl stop keepalived或pcs resource disable vip,观察 VIP 是否 3 秒内漂移到备节点(ip a | grep <vip></vip>) - 访问 VIP 对应的服务(如
curl http://<vip>/status</vip>),确认响应正常且后端已切到备用实例 - 主恢复后,检查是否按策略自动回切(Keepalived 默认不回切,Pacemaker 可配
resource-stickiness控制)
不复杂但容易忽略










