一个简单的网络平台系统,web应用。如何做双机热备?

如果是 一个简单的 Web 应用平台,要实现 双机热备(High Availability),通常需要 至少 3 台服务器。你现在一台能跑,只是功能上可用,但要达到真正意义上的“热备”,就必须考虑故障切换、心跳检测、会话保持、数据库一致性等问题。

下面给你说清楚为什么需要 3 台:


典型的双机热备架构需要几台?

👉 标准做法:至少 2 + 1 = 3 台服务器

用途描述
1 台主机(Master)正常提供 web 服务
1 台备机(Backup)主机挂了后自动接管
1 台虚拟 IP/心跳管理(Keepalived)负责虚拟 IP 漂移、健康检测(也可以和主机绑定在一起)

严格讲,只要 2 台 就能组成 HA(Keepalived 可以直接跑在两台上),但:

  • Web 服务本身:1 台主机,1 台备用
  • 同一套程序部署在两台上,需要共享数据库+存储
  • 数据库也要考虑是否需要双机热备

🔥 最常见的 2 种方案


方案 A:最小双机热备(2 台服务器)

如果你的架构非常简单:

  • Web 服务(前端+后端)
  • 单一数据库(MySQL/PostgreSQL)
  • 你接受数据库不做高可用(停机时由备机接管 web,数据库恢复慢一点也接受)

那么 2 台就够了

服务器1:Web服务 + DB + Keepalived(主)
服务器2:Web服务 + DB + Keepalived(备)

Keepalived 通过 VRRP 实现虚拟 IP 漂移。
主机宕机后,备机自动接管虚拟 IP 继续提供服务。

适合你这种小项目,但数据库不能完全高可用。


方案 B:生产级高可用(至少 3 台)

适合你未来要对外提供服务、有 SLA 要求。

[1] Web服务器 A
[2] Web服务器 B(热备 or 负载均衡)
[3] 数据库服务器(独立)

如果数据库也要 HA:
加:

[4] 数据库备机(例如 MySQL MGR / PXC)

甚至还会加 Nginx LB 节点:

[5] Nginx/HAProxy 主
[6] Nginx/HAProxy 备

但那就属于企业级架构了。


🎯 回答你的情况(最可能适用)

你说:

一个简单的平台系统,一台就可以跑起来。

== 如果你只想实现基本的双机热备,让一个挂了另一个顶上 ==
2 台服务器就够了。

你只需要选:

  • Keepalived + Nginx(最常见)
  • 或者 Windows Server Failover Cluster(如果是 Windows)

🧩 最简单的双机热备部署方式(推荐)

两台服务器都部署相同 Web 服务

ServerA(主) IP: 10.0.0.1
ServerB(备) IP: 10.0.0.2
VirtualIP(VIP): 10.0.0.10

用户永远访问 VIP。

Keepalived 配置:

  • 主机优先级高(优先 Master)
  • 备机监控主机存活
  • 主机挂了 → VIP 自动漂移到备机

数据库如不要求 HA,可本地跑一个:

  • 主机挂 → 备机自动启动自己的数据库
  • 数据一致性由你决定是否需要同步

📌 总结

要求需要台数
只要 web 双机热备2 台即可
Web + DB 都要高可用3~4 台
企业高可用(负载均衡 + 数据库集群)5~10 台

如果你愿意,我可以帮你画一个 双机热备架构图 或者给你 Keepalived 具体配置文件模板

发表回复