【应用服务 App Service】当遇见某些域名在Azure App Service中无法解析的错误,可以通过设置指定DNS解析服务器来解决
问题情形
当访问部署在Azure App Service中的应用返回 “The remote name could not be resolved: ‘‘xxxxxx.com’” 时,而您在公网中通过nslookup有能够解析成功。这个时间第一怀疑对象为Azure数据中心的DNS服务器没有您当前域名的信息。
详细日志
The remote name could not be resolved: ‘‘xxxxxx.com’
问题原因
以上的情况,往往是发生在该第三方服务的域名解析还未配置好,就已经从 Azure 上去进行了查询,结果发现无法查询到,然而这样的记录就会在 Azure 中保留一段时间。
在此期间内,如果域名解析已经做好,Azure 这边可能还会因为记录未及时更新而发生无法查询到的情况,只有到记录更新时间到了之后,重新获得解析,才能正常获取该服务的记录。
为了缩短由于无法解析到而对服务造成的影响,通常建议的做法是指定自己的域名解析服务器。 为WEBSITE_DNS_SERVER 和WEBSITE_ALT_DNS_SERVER配置域名解析的IP地址。此外,为了确保 Azure 的服务也可以正常解析到,保险的做法是把 Azure 的域名解析 IP 地址也配置在其中。
解决方案
应用设置名称 | 值 |
WEBSITE_DNS_SERVER | 8.8.8.8(公网的域名解析服务器 IP 地址) |
WEBSITE_ALT_DNS_SERVER | 168.63.129.16 (Azure 域名解析服务器 IP 地址) |
添加的效果图如下:
参考资料:
如何为 Web 应用程序指定新的域名解析服务器:https://docs.azure.cn/zh-cn/articles/azure-operations-guide/app-service-web/aog-app-service-web-howto-specify-new-domain-name-server
How to change the DNS server in Azure App Service:http://www.road4cloud.com/how-to-change-dns-server-setting-for-azure-web-app-app-service-environment/
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!