我尝试使用专用 DNS 名称(例如 mywebapp.privatelink.azurewebsites.net)通过虚拟网络内的专用终结点访问我的 Azure 应用服务。 DNS 解析工作正常,解析为专用 IP,但对专用端点的每个 HTTP 请求都会返回 404 站点未找到错误。下面,我概述了重现该问题所采取的步骤:
我有一个 Azure 应用服务,我将其称为“mywebapp”。公共 URL 工作正常,当我运行时:
curl -I http://mywebapp.azurewebsites.net
我得到了预期的回应:
HTTP/1.1 302 Found
Content-Length: 145
Content-Type: text/html; charset=utf-8
Date: Thu, DD Nov YYYY HH:MM:SS GMT
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: GET, OPTIONS
Cache-Control: private
Location: /Account/Logon?ReturnUrl=%2f
Set-Cookie: omissis;Path=/;HttpOnly;Domain=mywebapp.azurewebsites.net
Strict-Transport-Security: max-age=63072000; includeSubDomains
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
Content-Security-Policy: omissis
公共端点工作完美。
现在,我创建了一个虚拟网络和一个专用端点。私有 DNS 区域是
privatelink.azurewebsites.net
。当我检查记录集时,我推断要使用的主机名是 mywebapp.privatelink.azurewebsites.net
。
从 Azure 虚拟网络,我执行了一些测试:
我跑步:
nslookup mywebapp.privatelink.azurewebsites.net
我得到:
Server: 127.0.0.11
Address: 127.0.0.11#53
Non-authoritative answer:
Name: mywebapp.privatelink.azurewebsites.net
Address: 10.0.0.5
到目前为止,一切似乎都很好。 DNS 名称解析正确,私有 IP 正确。
接下来,我运行:
curl -I http://mywebapp.privatelink.azurewebsites.net
但我明白:
HTTP/1.1 404 Site Not Found
Content-Length: 2667
Connection: close
Content-Type: text/html
Date: Thu, 28 Nov 2024 11:38:14 GMT
这不是我所期望的。我尝试了许多不同的配置来获得正确的结果,但最终总是遇到此 404 Site Not Found 错误。
有人可以帮我解决这个问题吗?
即使注册了专用端点,您也将继续使用“公共”端点来访问您的应用程序。
请参阅:https://learn.microsoft.com/en-us/azure/app-service/overview-private-endpoint#dns了解更多信息。
After this DNS configuration, you can reach your app privately with the default name mywebapp.azurewebsites.net. You must use this name, because the default certificate is issued for *.azurewebsites.net.
如果要在本地连接到专用终结点,则必须编辑主机文件或使用带有 Azure DNS 专用解析器的 P2S-VPN。