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

将两个Azure Function Apps路由到单个应用程序网关的问题排查

问题解决指南

一、后端健康探测失败排查

针对你遇到的健康探测错误,按以下步骤逐一排查:

  • 检查子网端口权限:
    确认应用网关子网的NSG、UDR或防火墙未阻止对应SKU的端口范围:

    • v1 SKU:放行出站端口65503-65534
    • v2 SKU:放行出站端口65200-65535
      这些端口是应用网关与后端通信的专用端口,被阻止会直接导致健康探测失败。
  • 验证后端FQDN解析:
    检查故障后端池中配置的FQDN(如graphql.azurewebsites.net)能否被应用网关正常解析:

    1. 登录Azure门户,进入应用网关的后端池页面
    2. 点击目标后端池,查看「已解析的IP地址」是否为Function App的有效IP
      若解析失败,检查应用网关的DNS配置(默认Azure DNS可直接解析Azure App Service FQDN,若用自定义DNS需确保其能正常解析)
  • 检查Function App访问限制:
    登录故障Function App的门户页面,进入「网络」>「访问限制」,确认已添加应用网关的公网IP或子网IP到允许列表。未添加的话,Function App会拒绝应用网关的探测请求。

  • 核对健康探测配置:
    确保健康探测的协议、端口与后端设置完全一致,且探测路径为Function App的有效端点:

    • 若有自定义健康检查接口(如/api/health),优先将探测路径设为该接口
    • 若无自定义接口,可使用/作为探测路径,但需确保Function App根路径返回200状态码

二、单个公网IP区分两个Function App的路由配置

可通过两种方式实现同一公网IP下的后端区分:

1. 基于主机名的路由

  • 为两个Function App分别绑定自定义域名(如api.yourdomain.com和graphql.yourdomain.com)
  • 在应用网关上创建两个HTTP/HTTPS侦听器,分别设置对应的主机名
  • 为每个侦听器创建独立的路由规则,关联对应的后端池和后端设置
  • 将自定义域名的A记录指向应用网关的公网IP,确保DNS解析生效

2. 基于路径的路由

  • 使用同一个自定义域名(如yourdomain.com),通过路径前缀区分:
    • 配置路由规则1:匹配路径/api/*,转发到apis.azurewebsites.net后端池
    • 配置路由规则2:匹配路径/graphql/*,转发到graphql.azurewebsites.net后端池
  • 若需要去掉路径前缀(如将yourdomain.com/api/xxx转发为apis.azurewebsites.net/xxx),可在后端设置中启用「路径重写」,设置重写路径为/{remaining}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:30:08