基于 CentOS 的心跳代理

基于 CentOS 的心跳代理

我正在考虑为 Apache 和 MySQL 设置自动故障转移。我计划在两个 Apache 盒和两个 MySQL 盒前面放置一个小型代理服务器。Apache 将不时地从主服务器 rsync 到从服务器的数据,MySQL 将设置为主/从服务器以进行复制。如果发生故障,备份盒可以接管,直到主服务器重建。

前面的代理服务器将作为交通警察与某种心跳软件一起运行(此时我并不寻求负载平衡)。这样,我就不必担心在主设备出现故障时更换防火墙。Linux 高可用性最好的选择或者有什么建议吗?

答案1

Linux HA 是一款不错的工具集。如果您想要简单,请使用 heartbeat 1;heartbeat 2 适用于 2 个以上节点的集群和 XML 配置。1 足以满足大多数简单的 2 节点情况。

但是,虽然我同意在应用程序前面安装代理始终是一个好主意(运行来自一个虚拟服务器的多个服务器等),但您描述的设置听起来像是引入了一个新的 SPF:代理。

在您的情况下,最好做的是在主动-主动配置中运行两个服务器,包括两个服务器上的完整 Web 服务和完整代理服务(!)。

只需设置心跳来接管三个 IP:一个用于活动 MySQL 服务器,一个用于活动 Web 服务器,一个用于活动代理(只有最后一个需要公开)。

然后将代理设置为始终转到内部的“活动 Web 服务器”IP,并将 Web 服务器设置为转到“活动 DB 服务器”IP。

当您准备好进行负载平衡配置时,您只需放弃 Web 服务器 IP 的切换,而是将两个 Web 服务器都放入代理的后端服务器组中。

初始设置可能如下所示:

   Server A (Apache on Port 80)   Server A (Apache Port 8080)    Server A MySQL <-----------
              |                \           |                 \        |                      \
Web <-> Public Proxy IP         >-> Shared Private Web IP     >--> Shared Private MySQL IP    | Mysql Synchronization Link
              |                /           |                 /        |                      /
   Server B (Apache on Port 80)   Server B (Apache Port 8080)    Server B MySQL <-----------

然后,当您准备就绪时,您可以无缝地进入真正的负载平衡(如 Web 中提到的)和 MySQL 集群,而无需用户可见的变化。

最重要的是:仍然将您的应用程序立即置于代理后面(即使代理“实际上”只是相同的服务器)将会尽早暴露您的 Web 应用程序中的许多错误(关于链接创建中的主机名和路径的假设等)!

答案2

http://studyhat.blogspot.com/2009/11/clustering-linux-ha.html

上面的链接帮助你设置Linux HA

相关内容