在多个国家/地区托管网站

在多个国家/地区托管网站

我们的网站目前托管在英国,在 www.google.co.uk 上的搜索引擎排名非常好。为了在美国取得同样的成功,我们的网站必须托管在美国。

我对此有几个疑问。

1)如何设置 DNS 以便美国流量知道要转到更近的服务器?

2) 我们的网站尚未经历大量负载,因此暂时而言,美国服务器是否会将请求反向代理到我们的英国服务器?

3)或者我们应该设置某种脚本来同步两台服务器上的数据库?

答案1

  1. 基于地理位置的 DNS

    • 您可以运行 bind 并使用 patch 来地理域名解析根据请求者的位置返回不同的 IP。

    • 除了自己运行 DNS 之外,还有一种替代方法是使用提供商,该提供商会让您根据用户的位置指定 IP。例如:地理缩放

  2. 反向代理

    • 你可以使用反向代理。不过可能会比较慢。
  3. 数据库

    • 数据库的同步取决于您托管的应用程序类型。

答案2

问题 2 和 3 在很大程度上取决于您的应用。问题 1 理论上可以这样实现:

  1. 设置美国服务器以及该服务器对应的DNS服务器(单独的)。

  2. 为所有 DNS 服务器分配相同的 IP 地址,包括您位于英国的服务器 - 这种技术被称为(并广泛用于 DNS)任播

  3. 请求您的网络或托管提供商通过 BGP 公布到您的 DNS 服务器的路由,以便您的机器可以访问。根据您的托管设置,这里可能会有一些无法预料的警告。

  4. 配置每个 DNS 服务器以提供最接近其站点的 IP 地址,例如让美国 DNS 服务器提供美国/.com 服务器的地址,让英国 DNS 服务器提供英国/.co.uk 服务器的地址。

  5. 由于 Anycast,通常总是会使用最近的 DNS 服务器,因此会返回最近服务器的 IP 地址。

进一步考虑:

  • 如果您要完全复制您的网站,这也具有将美国访问者指向更近的.co.uk 域的优势,以及将英国访问者指向欧洲的.com 域的优势(假设您有ServerAlias或其他虚拟托管设置)。

  • 还请注意,如果您无法让网络提供商为您公布路由,那么这不是一个可行的解决方案。在托管方案中,请求可能非常困难,或者需要托管公司的专门资源。

  • 需要注意的是,Anycast 对于面向连接的协议来说是一种不可靠的设置,但非常适合 DNS 等 UDP 流量。

答案3

对于问题 1,有很多工具可以帮助你确定用户的相对位置:http://www.google.com/search?q=geolocation+ip

就代理与同步而言,我不确定 Google 是否对目标服务器的物理位置敏感,并且怀疑只要域名在访问网站时不会更改,您就可以将两者都指向同一目的地。

答案4

更简单 :

1/ 在世界各地的多家网站托管/云提供商处租赁服务器

2/ 安装 Varnish :)

3/ 使用负载平衡工具(Cedexis、Dyn 等)平衡缓存服务器网络的流量。您可以选择将 Google IP 重定向到您的本地缓存服务器。

在此配置中,流量将发送到您的美国本地缓存服务器。这非常简单,并且可以帮助 Google 爬虫 ;-)

它已经过测试并获批准。

相关内容