我面临一个问题。我将在多个区域(亚洲、美国、欧洲)设置带有多个专用服务器的 CDN,并且我将使用带有 geoip 路由的 Nginx 代理设置入口点。
但使用此解决方案,我只是将问题推向了更高的层次。因为此负载均衡器需要位于世界某个地方...如果我将其设置在美国,亚洲的流量将非常差,反之亦然...
我看到了类似 clouddns 的 GeoDNS 的解决方案,但我不明白它是如何工作的......
有人已经解决了这个问题吗?:)
谢谢
答案1
一些 DNS 托管提供商(当您托管自己的 DNS 时,一些产品允许您执行相同的操作)允许您设置 geodns,您可以根据 DNS 请求的源 IP 地址定制响应。
例如,当用户请求时,www.example.com
您可以为美国用户返回 CNAME www-us.example.com,为亚太地区的用户返回 CNAME www-ap.example.com。对于大多数用户来说,这会导致尽管他们都使用www.example.com在他们的浏览器 URL 栏中,他们将被引导至地理位置附近的特定服务器。
与任何 IP 到地理位置方案一样,它不会完全万无一失和准确,但它应该能够按预期为大部分用户群服务。
答案2
不确定 Cloud DNS 是否如此,但 Amazon Web Services 提供了 Route 53 的类似服务。它们提供了几个区分键,例如请求 IP 地址的位置,或该 IP 地址与多个 Amazon 数据中心之间的测量延迟。基于此,您可以返回不同的 IP 地址作为结果。
如果您有能力在域上使用子域名,则可能需要将 DNS 托管更改为新的提供商,或者使用子区域委派(如果您谈论的是网站地址,则很难,但当您从网站加载资产时,则可以做到)cdn.website.com
。