Azure Traffic Manager with Cloudflare CDN



在我看来,我们有一个非常简单的要求,显然证明并非如此:

"根据用户的地理位置将用户重定向到相应的云区域,并使用 Cloudflare 作为域 mysubdomain.myparentdomain.com 的 CDN">

进一步简化它,使用美国云区域基础设施等为来自美国的用户提供服务。现在,我们选择了 Azure 流量管理器,因为它能够根据地理位置解析 DNS。

假设到目前为止,我们有两个云区域:

  • DNS 名称为 us.cloudapp.azure.com 的美国区域
  • DNS 名称为 eu.cloudapp.azure.com 的基于欧盟的区域

由于我们应该使用 Cloudflare 作为 CDN,因此这两个区域都在 Cloudflare DNS 中配置如下:

  • endpoint1.mysubdomain.myparentdomain.com 是 的别名 us.cloudapp.azure.com(用于美国服务和基础设施(
  • endpoint2.mysubdomain.myparentdomain.com 是 的别名 eu.cloudapp.azure.com(用于欧盟服务和基础设施(

流量管理器现在配置了两个终结点:

  • 美国交通 endpoint1.mysubdomain.myparentdomain.com
  • 欧盟交通 endpoint2.mysubdomain.myparentdomain.com

在我们的 DNS 注册商(Cloudflare 之外(中,我们添加了一个 DNS 记录来解析我们的服务 sa,如下所示:

  • mysubdomain.myparentdomain.com 是 的别名 my-tm-profile.trafficmanager.net(指向 DNS 的实际服务 流量管理器的名称(

**问题场景 1:**

1.来自美国的用户在浏览器中输入 mysubdomain.myparentdomain.com
2.浏览器解析为流量管理器记录
3。流量管理器将其解析为美国终结点
4。如上所示,US 端点由 Cloudflare 代理。它已成功解析为 Cloudflare IP 地址。
5. 请求降落在 Cloudflare 中,但主机标头仍 mysubdomain.myparentdomain.com
6.Cloudflare试图在其DNS中查找 mysubdomain.myparentdomain.com,但找不到任何内容。
7. Cloudflare 引发源 DNS 不可用的错误。

问题场景 2:

要解决问题 1,mysubdomain.myparentdomain.com DNS 记录在 Cloudflare DNS 中创建,如下所示:

mysubdomain.myparentdomain.com 是 my-tm-profile.trafficmanager.net(指向流量管理器的 DNS 名称的实际服务(

的别名

1. 美国用户在浏览器中输入 mysubdomain.myparentdomain.com
2.浏览器解析为流量管理器记录
3。流量管理器将其解析为美国终结点
4。如上所示,US 端点由 Cloudflare 代理。它已成功解析为 Cloudflare IP 地址。
5. 请求降落在 Cloudflare 中,但主机标头仍 mysubdomain.myparentdomain.com
6.Cloudflare 尝试在其 DNS 中查找 mysubdomain.myparentdomain.com,并发现它再次指向流量管理器 DNS。7. Cloudflare
进入一个循环,试图解析再次由 Cloudflare 代理的服务。根据Cloudflare支持讨论,这是不可行的。

我看不出我怎样才能做到这一点。有什么建议吗?

我来这里是因为我在 Azure 函数上遇到了类似的问题。我的设置是这样的:

  • Cloudflare subdomain.domain.com 对流量管理器域具有 cname
  • 流量管理器设置了 2 个终结点
  • 每个终结点(Azure 函数(都 subdomain.domain.com 设置为自定义域,因此当具有此域的请求进入函数时,它们将知道如何正确处理请求。这与原始问题略有不同,在幕后有子域,但对于用户来说,这无关紧要。

问题是,一旦我点击 subdomain.domain.com,我就会得到 azure functions 404 页面。这暗示了流量管理器将流量发送到正确的主机的问题,但主机需要流量管理器传递域名,以便它可以正确处理它。我通过在 Azure 流量管理器终结点配置中的自定义标头下以格式host:subdomain.domain.com指定主机标头来存档该标头。我刚刚对我的另一个没有 azure 函数的项目尝试了相同的更改,它也有效(以前没有(。希望能帮助某人:)

最新更新