Azure Web 应用程序的 Azure 应用程序网关前端 end-to-end SSL 获取 404

Azure application gateway front of azure web app end-to-end SSL gets 404

我正在尝试将 WAF 放在 azure web 应用程序的前端(无 ASE)。网络应用程序是 运行 HTTPS (SSL *.azurewebsites.net)。我已按照此 MS 文档中的说明进行操作:

https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-end-to-end-ssl-powershell

我的 powershell 一切顺利。没有问题!

后端池指向正确的网络应用域 (myapp.azurewebsites.net)。我可以看到后端健康检查显示为 HEALTHY!

我也想知道,当我在门户中看到探测器 blade 时,主机名是空的。这可能是我在创建探测器时通过 -PickHostNameFromBackendHttpSettings 开关时有意为之的。只是想提供更多背景信息。

但是,如果我尝试通过网关访问站点,我会收到 404 - 找不到页面。

谁能帮我找出问题所在?

A 404 是一个错误,表示您请求的文件(无论是 index.html 还是其他文件)在服务器上找不到,因此无法呈现给您。在该错误中没有暗示应用程序网关无法与您设置的 Web 应用程序通信或以其他方式连接到该应用程序。如果应用程序网关无法与后端通信,您会看到的常见错误是 HTTP 502。

您想要执行的操作是可行的,因此可能是您的应用程序网关或应用服务配置错误导致了此 404。

下面链接的文章中可能有帮助的摘录是:

Both the switch -PickHostNamefromBackendHttpSettings on the Probe configuration and -PickHostNameFromBackendAddress on the back-end http settings must be provided in order for web apps to work.

这很可能是您的错误原因,但当然需要进一步调查。

您需要查看有关如何在 Web 应用程序前面创建应用程序网关的文档。这些说明适用于 PowerShell。

https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-web-app-powershell

我不是 100% 确定,但我现在猜到了问题所在。 我所做的是,仅手动创建前端侦听器并开始工作。然后我猜想,罪魁祸首可能是证书。 我使用具有相同证书的 ARM 模板再次创建了脚本,并且一切正常。我想 power shell 第一次上传 pfx 文件时出了点问题。遗憾的是错误代码有点误导,花了一些时间才弄清楚在哪里看。

感谢您的帮助!干杯。