【问题标题】:Azure Frontdoor: Requests go to invididual backends, why?Azure Front Door:请求转到各个后端,为什么?
【发布时间】:2023-04-09 08:29:02
【问题描述】:

我设置了一个带有 2 个后端的 Azure Frontdoor 负载均衡器,托管一个 Angular 应用程序。在浏览器的开发人员工具中查看网络流量时,我发现只有前几个对 *.html 和 *.js 文件的请求会发送到负载均衡器。从GET options 请求开始,所有后续请求似乎都直接到达后端#2(下图中红色部分):

这意味着,如果后端 #2 出现故障,客户端会收到 404 错误,并且不会自动重定向到后端 #1,除非用户按 F5 重新加载浏览器窗口。

我不确定 Angular 应用程序如何获取实际后端主机的 URL。我看不到任何可以提供此信息的标题或 cookie。 login.html 的第一个请求的标头如下所示 - 任何地方都没有后端 URL 的迹象:

我的问题是

  1. 客户端如何获取后端主机的 URL?
  2. 有没有办法定义所有请求都通过负载均衡器?
  3. 这是个好主意吗?或者这是“预期行为”,意味着用户将看到 404 错误并必须手动重新加载页面?

【问题讨论】:

    标签: azure azure-load-balancer azure-front-door


    【解决方案1】:

    它是应用程序,而不是天蓝色的前门。该应用程序必须根据其托管位置以及它们发出请求来构建 url。前门会将主机头设置为与应用服务的主机名相同。在这种情况下,应用程序会看到它的请求,就好像用户在浏览器中输入了它一样。您通常希望使用自定义主机名,例如neonapp-dev.yourcompanyname.com。当您这样做时,应用程序服务和前门都将配置自定义主机。在配置前门时,您可以将其用作主机标头,而不是默认的应用服务主机名。然后一切都会正常工作,因为应用程序永远不会将应用程序服务名称视为主机头。

    更多详情https://docs.microsoft.com/en-us/azure/frontdoor/front-door-backend-pool#backend-host-header

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-01
      • 2019-09-01
      • 2022-11-25
      • 2020-05-20
      • 2022-11-03
      • 2019-11-11
      • 2021-07-13
      • 2020-01-29
      相关资源
      最近更新 更多