对于我们的 SaaS 网络应用程序,我们在两个地理位置分离的数据中心拥有两台相同的服务器。
FOO_1 是生产服务器,它实时(MySQL 主从)复制到其备份 F00_2。我们希望我们的用户始终访问 THEFOO.COM,它以某种方式指向生产服务器。
因此,即使 FOO_1 宕机,我们也可以切换 THEFOO.COM 以重定向到 FOO_2,这样故障就透明了。此切换可以是手动的,也可以是自动的,但不能进行故障回复(如果 FOO_1 以某种方式再次可用)。
有没有办法用 DNS 来实现这一点?我被 ANAME 和 CNAME 配置难住了。我们不使用子域名,只使用直域名。
如果没有,还有其他选择吗?仅在 LOVELY_FOO.COM 上设置一个 Web 服务器并重定向所有流量是否有意义?我也研究了负载平衡器,但没有看到跨数据中心/网络提供商的解决方案。
答案1
正如您所提到的,您可以使用反向代理前端来执行此操作。(例如 apache)同样,Web 应用程序防火墙(例如 sophos / astaro Web 代理)可以提供故障转移(以及您可能想要的其他好东西,如各种 Web 应用程序安全功能)。
答案2
只需使用 A 记录。它将 thefoo.com 映射到任何 IP 地址。因此在正常情况下,它将指向 foo_1 的 IP。如果 foo_1 发生故障,则将 A 记录更改为指向 foo_2 的 IP。
保持 TTL 较短,以确保更改快速传播。一些 DNS 提供商提供自动故障转移服务(例如 Amazon Route53)。
答案3
您可以通过全局负载均衡器来实现这一点。我们有几个 F5 gtm 可以处理此流量。这是通过 DNS 完成的,您可以根据配置确定将哪个记录提供给客户端。如果您无法托管自己的 gtm,您可以购买此服务。