有没有办法在多个主机上托管一个网站。完全相同的网站,例如在托管公司 HostingABC 和 HostingDEF 上?
如果 HostingABC 出现问题(无论是暂时性问题,如停机,还是永久性问题,如 HostingABC 破产),该网站仍然可以通过同一域名上的 HostingDEF 访问。
可以吗?如何设置?
我不在乎两者是否同时可访问,或者只有一个可访问,第一个关闭后另一个接管。此外,它应该适用于两个以上的主机。
感谢您为我指明正确的方向。
值得注意的是,该网站本身并没有什么特别的要求。基本上就是 PHP + MySQL。
答案1
听起来你正在寻找轮询 DNS、常规数据库同步和常规代码复制。
应该是一个非常简单的设置:)
答案2
循环调度既便宜又简单,但可能不是您的最佳解决方案。在循环调度设置中,您将该域的所有服务器放入一个 A 记录中,DNS 服务器将向任何请求分发这些记录中的一个(且只有一个)。如果您有三台服务器,其中两台发生故障,循环调度将引导您的客户到无法运行的 Web 服务器,平均 2/3 次出现错误消息。或者,您可以尝试使用短 TTL DNS 记录,并在服务器启动和关闭时手动或自动更新您的 DNS。这没什么意思,而且扩展性很差。
不幸的是,从那时起,成本和复杂性迅速上升。由于您的两台服务器位于不同的网络上(我假设它们位于不同的位置?),您需要查看一个负载平衡器(或只是一个代理),它可以响应 Web 请求并将其转发到任何运行的服务器。它需要位于您拥有的其中一个位置/网络(这使得该位置/网络对于故障更为关键,或者位于另一个位置,这会增加复杂性,但仍然非常关键。您必须考虑自己组装代理,购买一个作为设备,或者与可以为您完成其中一些工作的服务提供商合作。
同步:如上所述,您需要使用 MySQL 复制或其他工具(主从或多主)保持数据库同步,具体取决于您的读/写比率和性能要求。并且代码必须在前端保持同步。我强烈建议您使用主存储库(例如 SVN)来填充前端,以提高速度、易于管理并让您安心。
如果事情需要这样发展,你还有许多工作要做。祝你好运,玩得开心!