为 Azure Web App 配置应用程序网关时出现 502 错误

lop*_*oni 5 azure azure-application-gateway

设想

配置 Azure 应用程序网关以将流量路由到不同的 Azure Web 应用程序,以利用 Web 应用程序防火墙 (WAF)。

初始配置工作正常,只是浏览器中的最终 URL 是 {mysite}.azurewebsites.net。我希望这是自定义域名 {subdomain}.{mysite}.com。这是通过将后端池绑定到应用程序服务来配置的。将其更改为 FQDN 不起作用。下面的屏幕截图。

CNAME 已指向网关。

期望的结果

当有人点击 {subdomain}.{mysite}.com(已配置为指向网关)时,我应该得到 {subdomain}.{mysite}.com 而不是 {mysite}.azurewebsites.net

当前设置

网关配置了多站点侦听器,其规则指向后端池,并且还绑定到 http 设置。

侦听器正在侦听 {subdomain}.{mysite}.com

后端池配置 池配置

探头配置 探针配置

HTTP 设置配置 设置配置

以下链接提供了一些部分答案/配置,但没有一个对我有用。 应用程序网关 - 502 错误

https://learn.microsoft.com/en-us/azure/application-gateway/troubleshoot-app-service-redirection-app-service-url

https://learn.microsoft.com/en-us/azure/application-gateway/create-web-app

更新

以下是使用 azure 门户 UI 在 Azure 应用程序网关和 WAF(Web 应用程序防火墙)后面配置具有自定义域的 azure 应用服务的步骤列表。

  1. 配置后端池,目标指向您的应用服务。
  2. 使用以下设置配置运行状况探测器

    • 协议:HTTP 或 HTTPS
    • 主机:{appservice}.azurewebsites.net
    • 小路: /
  3. 配置 Http 设置

    • 未选中的情况下使用应用服务。
    • 使用自定义探针检查
    • 未选中从后端地址选择主机名(您可能必须选中此选项才能配置规则,然后取消选中它)。
  4. 配置监听器

    • 主机名:{子域名}.{域名}.com(您的域名)
  5. 配置基本规则

    • 将其绑定到适当的 http 设置、后端池和侦听器
    • 注意:如果没有选中从后端选择主机名的 http 设置,您可能需要更改它、附加它,然后再次删除该标志。

Nan*_*ong 2

您可能会收到 502 错误,因为您subdomain.mysite.com在后端池的目标中更改为 FQDN。但是,在这种情况下,您没有更改 Web 应用程序服务中的自定义域,您只能通过默认域访问网站mysite.azurewebsites.net。我建议改回目标中的应用程序服务。

\n\n
\n

初始配置工作正常,只是浏览器中的最终 URL 是 {mysite}.azurewebsites.net。

\n
\n\n

请检查您的网络应用服务中是否有HTTPS Only设置。这会将所有 Http 重定向到 Https。对我来说,通常情况下,它会导致浏览器中的最终 URL 是.ONCustom domainsmysite.azurewebsites.net

\n\n

更新

\n\n

如果您没有HTTPS Only打开,出现此问题的主要原因可能有以下几种:

\n\n
\n
    \n
  • 您已在应用服务上配置了重定向。重定向可以像在请求中添加尾部斜杠一样简单。
  • \n
  • 您具有导致重定向的 Azure AD 身份验证。
  • \n
  • 您已在应用程序网关的 HTTP 设置中启用 \xe2\x80\x9cPick Host Name from Backend Address\xe2\x80\x9d 开关。
  • \n
  • 您没有\xe2\x80\x99 向应用服务注册自定义域。
  • \n
\n
\n\n

这个问题可以通过在应用程序端不进行重定向来解决,但是,如果\xe2\x80\x99s 不可能,您可以按照此解决方案来解决它。

\n\n
    \n
  1. 将域注册subdomain.mysite.com到应用服务的自定义域列表。有关详细信息,请参阅将现有自定义 DNS 名称映射到 Azure 应用服务。
  2. \n
  3. 完成后,您的应用服务就准备好接受主机名subdomain.mysite.com。现在,更改 DNS 中的 CNAME 条目,将其指向应用程序网关\xe2\x80\x99s FQDN。例如,appgw.eastus.cloudapp.azure.com
  4. \n
  5. 取消选中探针设置中的复选框Pick Hostname from Backend HTTP Settings。在探测的主机名字段中,输入应用服务的 FQDN mysite.azurewebsites.net,因为从应用程序网关发送的探测请求将在主机标头中携带此名称。
  6. \n
  7. Pick Hostname from Backend Address取消选中应用程序网关\xe2\x80\x99s HTTP 设置中的复选框。
  8. \n
  9. 将自定义探针关联回后端 HTTP 设置并验证后端运行状况是否正常。
  10. \n
\n\n

完成此操作后,应用程序网关现在应该将相同的主机名转发subdomain.mysite.com到应用服务,并且重定向将在相同的主机名上发生。

\n