You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure应用网关路径路由失效:请求始终跳转至默认后端池

问题排查与解决方案

一、修正路径路由规则的路径配置

当前规则的路径和需求不匹配且存在拼写错误,先调整为:

  • 规则1(对应functionapp1):
    • 路径改为:/abc/functionapp1/*
    • 目标后端池:functionapp1bp
  • 规则2(对应functionapp2):
    • 路径改为:/def/functionapp2/*
    • 目标后端池:functionapp2bp

注意:用*通配符匹配该路径下所有子路径,确保任意函数路径都能命中;同时修正第二个规则的路径前缀从/abc改为/def,和需求保持一致。

二、配置URL重写规则(关键步骤)

Azure Functions的函数访问必须带/api/前缀,需为每个后端池单独配置带重写的后端设置:

  1. 针对functionapp1的后端设置(新建或修改):
    • 启用URL重写
    • 重写规则配置:
      • 源模式:^/abc/functionapp1/(.*)
      • 目标模式:/api/{R:1}
      • 重写类型:重写URL
  2. 针对functionapp2的后端设置:
    • 启用URL重写
    • 重写规则配置:
      • 源模式:^/def/functionapp2/(.*)
      • 目标模式:/api/{R:1}
      • 重写类型:重写URL

不要使用默认backendsetting,必须为每个后端池单独配置带重写的后端设置,否则重写逻辑无法生效。

三、调整规则优先级

将两个自定义路径路由规则的优先级设为高于默认后端池规则。应用网关按规则顺序匹配,先命中的规则生效,确保自定义规则优先被匹配。

四、确认路径匹配模式

在路径规则配置中,选择**通配符匹配(Wildcard)**模式,确保*能正确匹配后续任意子路径,避免因匹配模式错误导致规则失效。

五、测试验证

完成配置后,测试以下场景:

  • 访问https://test.air.be/abc/functionapp1/function1,应路由到functionapp1的/api/function1
  • 访问https://test.air.be/def/functionapp2/function2,应路由到functionapp2的/api/function2
  • 访问未匹配的路径(如https://test.air.be/other),才会跳转至默认后端池

内容的提问来源于stack exchange,提问作者Sharat Bhaskar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 19:37:13