我的 apache2 debian 服务器上有一些命名的虚拟主机,我希望有一个镜像服务器,只要第一台服务器出现故障就可以启动。我们可以假设我完全控制了两台服务器,并且两台服务器上的 /www 数据使用 rsync 定期和增量同步。
我可以看到在 DNS 级别执行此操作的方法,但我希望对此有社区意见。是否有任何解决方案可以实现这一目标?
谢谢
我的 apache2 debian 服务器上有一些命名的虚拟主机,我希望有一个镜像服务器,只要第一台服务器出现故障就可以启动。我们可以假设我完全控制了两台服务器,并且两台服务器上的 /www 数据使用 rsync 定期和增量同步。
我可以看到在 DNS 级别执行此操作的方法,但我希望对此有社区意见。是否有任何解决方案可以实现这一目标?
谢谢
如果两台服务器都在同一个子网上,你可能想寻找心跳,这将使 server2 获取 server1 的 server1 IP 失败。一个简单的例子是http://www.linux-ha.org/GettingStarted/Apache
IPVS和keepalived是要使用的组合。根据您的配置,您可以使用两台服务器,只要它们正常工作,然后在另一台出现故障时只使用一台。
通常,您应该有冗余的负载均衡器,然后在它们后面有任意数量的网络服务器。
您甚至可以将它们配置为提供静态的“FailWhale”页面,但是配置并不是那么简单,YMMV。
另一种可能性是使用 UCARP ( http://www.ucarp.org/ ):
UCARP 允许几个主机共享公共虚拟 IP 地址以提供自动故障转移。
虽然要注意它在 IP 级别而不是在应用程序级别上工作!然而,一个优点是它都在用户空间中运行,设置非常简单,并且它与在不同平台上运行的 UCARP 版本兼容(即主服务器可以是 Linux,而您的从属服务器运行 Solaris 或 Windows 或其他)。