考虑一家公司,该公司希望从其选择的动态数据中心为其拥有的给定域(例如 google.com)下的给定一组用户或 IP 地址(例如出于延迟管理目的)区域性地提供 HTTP 服务。
我的理解是,当客户端(用户)发出 HTTP 请求(例如GET
)时,该请求可能会解析为 ISP DNS 服务器提供的 IP 地址,并且不是由相关公司负责(暂且不论这是否被缓存/etc/hosts
等)。
因此该 IP 地址可能不是是公司想要将流量路由到的那个。例如,它可能是一个糟糕的数据中心,例如,出于某种原因,当时处于该用户/位置的糟糕区域,这可能会导致 IP 流量的路由时间过长(例如,为来自美国的英国 HTTP 请求提供服务)。
在实践中,HTTP 服务公司如何以编程方式控制(即使只是统计上的而非即时的)给定用户(IP 或位置)的 HTTP 流量应该转到哪些 IP 地址?
答案1
不决心任何托管服务提供商的服务IP存在巨大问题,用户无法联系到他们。
如果 ISP DNS 解析器对结果进行不必要的篡改,则可能会被其他服务取代。或者被 DNSSEC 或 DNS over HTTP 加密锁定在流量之外。
就性能而言,即使托管在单个地理区域,也可以走得很远。可以肯定这个 Stack Exchange 网络就是一个位置(具有远程灾难恢复站点)。连接性强的位置(例如纽约市到伦敦)的延迟相对较低。但要注意,尽量减少往返次数。将数据库服务器和关联的 Web 服务器隔开一海,性能不会很好。
静态 IP 地址的一个典型解决方法是任播,但需要在多个位置使用。许多内容交付网络到处都有任播 POP。这实际上对流量流向的控制较少,但理论上请求将通过 IP 路由发送到最近的位置。
您提到了 Google。Google 已投资上述所有领域:来自其自身地址空间的任播 IP 地址、无处不在的 POP、加密 DNS,甚至拥有自己的传输网络。您可以通过 GCP 租用部分此类基础设施。
Google 与大多数企业不同,因为它们的运营本质上是在多个地点进行的。解析 google.com。1e100.net 地址将包含距离您相对较近的机场代码。