![两个前端位于不同位置时 Apache 可用性。这可能吗?](https://linux22.com/image/513853/%E4%B8%A4%E4%B8%AA%E5%89%8D%E7%AB%AF%E4%BD%8D%E4%BA%8E%E4%B8%8D%E5%90%8C%E4%BD%8D%E7%BD%AE%E6%97%B6%20Apache%20%E5%8F%AF%E7%94%A8%E6%80%A7%E3%80%82%E8%BF%99%E5%8F%AF%E8%83%BD%E5%90%97%EF%BC%9F.png)
我有两个位置(办公室和服务提供商)。一个 DNS(绑定)为我们的域提供权威服务,另一个服务提供商网络服务器在私人服务器上提供我们的公司网站。
所以..
现在我们正计划将ISP上的服务器升级为新的,我想利用这种情况来改善我们的服务。
是否可以将高可用性 apache/mysql/php 安装到不同位置?
我将在同一个新服务器上安装一个绑定从属服务器,因此我希望它能让事情变得更容易,但我需要一些关于如何使用它的提示和技巧。
谢谢。
答案1
Kyle 一针见血地指出了CAP 定理。
最终,这将归结为预算和资源。处理边界可用性的最佳方式是使用以下网络协议边界网关协议. 使网络高可用性变得更容易,因为大多数情况下您不必担心数据完整性。
使用DNS 循环是一个折衷的解决方案,虽然不太健全,但肯定也是可行的。
在堆栈的较低位置,您拥有 Web 服务器,它们更容易进行动态故障转移,就像任何不涉及数据存储的东西一样。
在后端,您可以复制MySQL 可通过互联网或私有链接访问。如果通过互联网,至少使用SSL。VPN 会更好。这是最棘手的部分,我现在仍在努力解决。如果您不关心数据完整性,这很简单。如果您的产品专注于阅读,那么您有更多选择,因为它不太复杂。
我不断回顾的是以下内容......
高可用性和业务连续性是两件截然不同的事情。最好在同一设施内同一内部网络内建立高可用性环境,因为可以应用最佳情况,同时将数据风险降至最低。除了以太网链路外,使用 3 英尺串行电缆监控服务器状态可大大降低裂脑的可能性。发生灾难时,通常会涉及手动步骤,并且服务水平协议规定影响和条款。如果主数据中心被烧毁,30 分钟内恢复生产听起来还不错。
我可能可以就这个主题写一本书,因为内容很丰富。你可能需要根据自己的资源妥协需求,并需要向业务部门传达这些需求。这不是一个简单的请求。
一个更简单的解决方案可能是拥有两个外部 DNS 提供商,其中一个从属于您一个站点上的服务器,另一个从属于您另一个站点上的 DNS。这样,如果任何一个 ISP 发生故障,您都可以使用 DNS 更改传入路径。
一个站点上有一条 Web 路径,另一个站点上有一条 Web 路径。后端有双主控,顶部有手动故障转移。这很简单,不会危及数据完整性,但必须手动执行。
答案2
这是可能的,但你可能在使用 mysql 时遇到最大的麻烦。请参阅 Warner 的关于地理位置分散的 MySQL 安装。
至于用于故障转移的 DNS,您可以阅读以下文章中的讨论这个问题。
答案3
根据您具体想要完成的任务,您可以查看以下(免费和开源)程序:
- 英镑 -http://www.apsis.ch/pound/
- Keepalived -http://www.keepalived.org/
- HAProxy -http://haproxy.1wt.eu/
无论您选择哪种高可用性解决方案,您都应该确保始终拥有可用的权威 DNS 服务器,但这是另一个问题。