“简单”故障转移到地理上分离的服务器?

我一直在阅读关于DNS故障转移和其他一些技术术语,但是我在这方面有点新手,所以这听起来对我来说是希腊语。 基本上这就是我所需要的:

我有两个来自两个不同提供者(服务器A和服务器B)的共享主机帐户。 每个帐户都包含完全相同的网站内容。

在正常的日子里,input我的域名应该指向服务器A的IP地址。但是,在服务器Aclosures或无法访问的糟糕的一天,我的域名应该以最快的方式指向服务器B的IP。

你如何做到这一点,你可以推荐哪些服务? 谢谢。

注意 :这个问题有一个后续问题: DNS循环:多个名称服务器VS多个logging?

简单的答案是使用内容分发/传递networking来处理您的stream量。 他们已经有了这样的基础设施来处理故障转移。

如果你必须自己主持,一条路线是:

  • 设置DNS TTL非常低
  • 设置一个监视Web服务器的服务器
  • 如果其中一个Web服务器出现故障,请在监视服务器上自动执行脚本以修改DNS并删除发生故障的服务器

不过,我的第一个build议仍然是使用CDN。

它永远不会只与共享主机帐户。 你将需要一些聪明的处理中断。 有很多select:

1. CDN写作@Hyppy

这是最简单的,我们可以说静态内容的最便宜的解决scheme。 您将上传静态内容(js,html,图片等)到CDN,并将其分发到全球。 您的内容具有较高的可用性,访问者将从最近的服务器下载内容,而不是通过整个互联网。 CDN无法提供dynamic内容(好,有些像Akamai可以,但价格昂贵,无法提供所有内容)

2.负载均衡器

您可以使用HAProxy将您自己的服务器设置为loadbalancer。 您将您的DNSlogging指向负载均衡器,负载均衡器将stream量路由到目标服务器。 当所有服务器都正常时,负载均衡器可以pipe理负载分配,当有些服务器死亡时,可以禁用stream量

如果你需要HA,你应该有更多的负载均衡器使用虚拟IP进行备份(使用KeepAlived等)。 如果两个负载均衡器都在同一个networking上,实现起来相当简单,但是如果要在不同的提供商中安装这些负载均衡器,则很难实现(最终会出现一种称为多宿主AS,您自己的IP子网和另一种东西) 。 您可以使用专用硬件作为负载均衡器,如F5的设备。

就购买而言,这是一个昂贵的解决scheme,但就TCO而言,它可以比CDN便宜,并且在处理方面不受限制。