我有一个Azure API应用服务,我想为其配置“优先级”流量管理(这是新的流量管理器,而不是经典) . 我已将服务部署到两个单独的Azure区域,并配置了Traffic Manager实例以执行到两个服务实例的优先级路由 . 这些服务具有以下自定义域配置:
foo1.mydomain.com
foo2.mydomain.com
我有两个指向相应Azure App Service IP地址的子域的记录 .
我还为服务附加了通配符证书,如果我导航到https://foo1.mydomain.com或https://foo2.mydomain.com,一切都很顺利 . 流量管理器 endpoints 监控将两个 endpoints 显示为联机并启用 .
现在,我想让客户端向虚荣 endpoints 发出请求: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 app not found"消息 . 同样,解析单个 endpoints 显式返回200预期 .
我的问题:如何使用我的SSL / TLS证书和虚URL来正确配置Azure Traffic Manager以对两个自定义域名进行优先级路由?
Dig output for reference:
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 回答
需要将虚荣域名分配给每个 endpoints 应用服务,并且证书需要绑定到各个 endpoints ,即foo1和foo2以及虚荣 endpoints . You need to bind the certificate to the vanity domain in all app services that are going to be used as endpoints .
DNS配置需要如下:
每个应用服务 endpoints 域的A记录,指向Azure为应用服务分配的IP地址 .
从虚名域指向* .trafficmanager.net域的CNAME .
请参阅https://azure.microsoft.com/en-gb/documentation/articles/traffic-manager-how-traffic-manager-works/
由于Traffic Manager在DNS级别工作,因此您看到的证书(* .azurewebsites.net)必须来自App Service,而不是来自Traffic Manager . 您需要将App Service配置为使用正确的SSL证书 .
我建议您尝试在没有Traffic Manager的情况下使一切正常工作,并将您的虚拟域foo.mydomain.com设置为您的某个 endpoints (foo1.mydomain.com)的CNAME . 然后切换CNAME以指向另一个 endpoints (foo2.mydomain.com)并再次确保一切正常 . 由于此时的任何问题都不涉及流量管理器,这使它们更容易调试 .
一旦你有了工作,然后将流量管理器重新引入CNAME链 .
问候,
Azure网络项目经理Jonathan Tuliani - DNS和流量管理器
我遇到了同样的问题,并且在应用以下Azure和DNS配置后能够最终解决问题 . 我失踪的那篇文章是在每个 endpoints 上注册foo.mydomain.com . 必须在api域之前绑定唯一域,否则api域管理 .
流量管理器没有附加任何东西,因为它不是一个Web服务器,它只是一个比你更平均的熊名称服务器 .
将您的流量管理器 endpoints 重新定义为:
而不是.azurewebsites.net域名 .