9

我有一个 Azure API 应用服务,我想为其配置“优先级”流量管理(这是新的流量管理器,不是经典的)。我已将该服务部署到两个单独的 Azure 区域,并配置了一个流量管理器实例来执行到两个服务实例的优先路由。这些服务具有以下自定义域配置:

foo1.mydomain.com

foo2.mydomain.com

我有两个指向各自 Azure 应用服务 IP 地址的子域的 A 记录。

我还为服务附加了一个通配符证书,如果我导航到https://foo1.mydomain.comhttps://foo2.mydomain.com,一切都会很好。流量管理器端点监控显示两个端点都在线并启用。

现在,我想让客户端向虚端点发出请求:foo.mydomain.com,我已经为其创建了一个 CNAME。CNAME 指向流量管理器实例 URL myapi.trafficmanager.net。

当我尝试使用 SSL/TLS 解析虚 URL 时,即https://foo.mydomain.com,我收到证书错误,因为流量管理器附加了 *.azurewebsited.net 证书。如果我尝试在没有 SSL/TLS 的情况下解析虚 URL,即http://foo.mydomain.com,我会收到 404 和“找不到 Web 应用程序”消息。同样,解析各个端点显式返回 200,如预期的那样。

我的问题:如何正确配置 Azure 流量管理器以使用我的 SSL/TLS 证书和虚 URL 为两个自定义域名执行优先级路由?

挖掘输出供参考:

my-machine:~ jtw$ dig foo.mydomain.com

; <<>> DiG 9.8.3-P1 <<>> foo.mydomain.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4088
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;foo.mydomain.com.      IN  A

;; ANSWER SECTION:
foo.mydomain.com.   299 IN  CNAME   myapi.trafficmanager.net.
myapi.trafficmanager.net. 299 IN    CNAME   foo1.mydomain.com.
foo1.mydomain.com.  299 IN  A   192.168.1.1 //the actual IP of my first priority endpoint is returned here

;; Query time: 369 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Jul  3 11:13:59 2016
;; MSG SIZE  rcvd: 112
4

4 回答 4

16

请参阅https://docs.microsoft.com/en-us/azure/traffic-manager/traffic-manager-how-it-works

由于流量管理器在 DNS 级别工作,因此您看到的证书 (*.azurewebsites.net) 必须来自应用服务,而不是来自流量管理器。您需要将应用服务配置为使用正确的 SSL 证书。

我建议您尝试在没有流量管理器的情况下让一切正常工作,将您的虚域 foo.mydomain.com 设置为您的端点之一 (foo1.mydomain.com) 的 CNAME。然后切换 CNAME 以指向另一个端点 (foo2.mydomain.com) 并再次确保一切正常。由于此时的任何问题都不能涉及流量管理器,这使得它们更易于调试。

完成该工作后,将流量管理器重新引入 CNAME 链。

问候,

Jonathan Tuliani,Azure 网络项目经理 - DNS 和流量经理

于 2016-07-04T11:03:57.123 回答
3

虚域名需要分配给每个端点应用服务,并且证书需要绑定到各个端点,即 foo1 和 foo2 以及虚端点。 您需要将证书绑定到将用作端点的所有应用程序服务中的虚域

DNS配置需要如下:

每个应用服务终结点域的 A 记录,指向 Azure 为应用服务分配的 IP 地址。

从虚域指向 *.trafficmanager.net 域的 CNAME。

于 2016-07-05T15:10:39.630 回答
1

我遇到了同样的问题,并在应用以下 Azure 和 DNS 配置后终于解决了这个问题。我缺少的部分是在每个端点上注册 foo.mydomain.com。唯一域必须在 api 域之前绑定,否则 api 域管辖。

Traffic Manager Endpoints
foo1.mydomain.com
foo2.mydomain.com

Endpoint 1 App Service SSL Bindings:
foo1.mydomain.com (Must Be Added First)
foo.mydomain.com

Endpoint 2 App Service SSL Bindings:
foo2.mydomain.com (Must Be Added First)
foo.mydomain.com

mydomain.com DNS Records
CNAME Host: foo, Value: myapi.trafficmanager.net
CNAME Host: foo1, Value: endpoint1.azurewebsites.net
CNAME Host: foo2, Value: endpoint2.azurewebsites.net
于 2018-10-12T04:23:47.337 回答
0

流量管理器没有附加任何东西,因为它不是一个网络服务器,它只是一个比你的平均熊更智能的名称服务器。

将您的流量管理器端点重新定义为:

foo.domain.com
bar.domain.com

而不是 .azurewebsites.net 域。

于 2016-07-02T20:44:36.540 回答