如何将用户引导到特定的IP而不会有单点故障?

我们想要反映我们在英国和美国的网站,原因有两个。 以便…

  1. 该网站对于位于美国/欧洲的用户来说是快速的。
  2. 因此,如果任一服务器停机,用户仍然可以访问该网站。

至于服务器之间的数据共享,我们将使用MySQL镜像,并可能rsync来保持镜像的文件。

如果我们只需要做点1,那么我们可以编写一些代码来将用户redirect到基于他们的IP的任何一个站点,但是要做到这一点,我们将有一个单点故障。

有没有一种相当便宜的方式告诉用户根据他们的位置不同的IP? 也许我们可以用我们的DNS服务器做一些奇特的事情?

  • IP块多久重新分配到不同的地区?
  • 绑定:不能分配请求的地址
  • 地理围栏,不同地域的IP地址列表
  • 我需要一个本地服务器来考虑其成本在澳大利亚的网站吗?
  • 通过地理位置负载均衡IIS7.5服务器
  • DNS,多个名称服务器和地理位置?
  • 2 Solutions collect form web for “如何将用户引导到特定的IP而不会有单点故障?”

    “高可用性”总是很有趣:-)

    在“简单”方面,您可以指定多个Alogging 。 这个工作方式(典型)是循环方式,不能指定默认的服务器。 这意味着你将和英国人一起服务于美国服务器,反之亦然。 这不是你想要的(最不重要的是因为我们美国人被所有额外的你用颜色performance出来的那些词混淆);-)

    一个更复杂的解决scheme是使用一个DNS服务,使用一个类似于你在评论中build议的function。 一种称为全球服务负载平衡的技术也完成了类似的工作。

    在更昂贵和复杂的一面,您可以使用BGP MultiSite MultiHoming (购买自治系统编号(ASN)) ,并从两个站点向同一networking发布BGP路由。 这在理论上确保每个人都能得到“最接近”(基于networking可访问性)的网站。

    或者,您可以聘请Akamai为您分发您的数据和应用程序。 为了很多钱。

    如果你有钱和专业知识,我推荐BGP多宿主解决scheme。 如果没有,您可能需要查看DNS解决scheme。

    正如马特所说,有些公司会提供CDN。

    更便宜的方法是使用RRDNS

    www.example.com A (UK address) www.example.com A (US address) uk.www.example.com A (UK address) uk.www.example.com A (UK address) uk.www.example.com A (UK address) ... uk.www.example.com A (US address) us.www.example.com A (US address) us.www.example.com A (US address) us.www.example.com A (US address) ... us.www.example.com A (UK address) 

    在两台服务器上,尝试删除一个cookie(如果没有的话),指出客户端在哪个大洲(节省重复的昂贵的查找)。

    维护每个服务器中“其他”系统的状态。 当您在www.example.com地址获得连接时,redirect到可用客户的最本地系统(例如uk.www.example.com)。

    在本地虚拟主机(英国和美国),每当一个GET请求进来,如果是非本地虚拟主机,检查该位置的首选主机是否可用,并在那里redirect客户。

    你可能想要实现更好的故障转移检测(避免裂脑),并检测服务器之间的循环,而不是提到其他的调整。

    它不完美,并依赖于你编写自己的redirect/故障转移处理。

    更实际的解决scheme可能是实现自己的位置敏感的DNS服务器 ,有一个小的,但越来越多的DNS提供商可以提供这样的服务(再次使用RRDNS与大量的重复本地A和less数远程Alogging)。

    C。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.