【问题标题】:cdn: proxy request to specific origin based on ip geolocationcdn:基于 ip 地理位置对特定来源的代理请求
【发布时间】:2017-10-08 04:22:09
【问题描述】:

我的服务包含几个原始服务器,每个服务器位于不同的大陆。每个客户端请求都通过代理这些服务器的 CDN。大约一半的请求是可缓存的,而另一半则不是。哪个来源为可缓存的响应提供服务并不重要,因为分布式 CDN 将在未来为这些请求处理来自最近的可能 POP 的响应(直到缓存到期)。但是,对于不可缓存的响应,我希望离用户最近的源来响应 CDN 正在代理的请求。

是否有一些 CDN 具有这样的功能,您可以指定如下内容:“尽最大努力根据 ip 对请求进行地理编码,如果 ip 来自北美大陆,请使用 noram.originfoo.com,如果 ip 来自欧洲大陆使用eu.originfoo.com等”?

也许架构应该改为 DNS 解析根据客户端 IP 选择 CDN 主机名,并且 CDN 具有不同的条目,其中一个区域特定的 CDN 主机名映射到一个源主机名。

【问题讨论】:

    标签: geolocation cdn


    【解决方案1】:

    看看fastly CDN 解决方案。它使用varnish 并允许客户使用vcl 规则(请参阅他们的docs)。 这是一个 guide 似乎正在做你需要的事情:

    Fastly 允许您根据用户的地理位置更改源服务器。当您需要为不同位置的用户提供不同的内容时,这很有用。例如,您可以更改源服务器以向不同国家/地区的用户提供您网站的受限版本。

    【讨论】:

      【解决方案2】:

      您当然可以使用现有的服务来执行此操作,AWS 肯定可以执行此操作。但是如果你想自己实现这个,你基本上需要通过他们的 IP 找到调用者的位置,并据此将 URL 发送到最近的位置。

      【讨论】:

      • 您能否详细说明如何在 AWS 中实现它?
      • 最简单的方法是使用 AWS CloudFront,他们已经为您提供了开箱即用的功能。
      • 您能否分享一个指向文档的链接,该文档描述 CloudFront 将选择最接近用户 ip 的自定义源?谢谢
      • 提供的链接似乎不相关 - 问题是关于选择正确的 origin 位置,而不是 edge 位置。看起来我们在谈论不同的事情
      猜你喜欢
      • 2011-09-05
      • 1970-01-01
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多