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