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

如何让多个Azure容器实例组共用固定公网IP按URL路径区分访问

实现方案

你提到的两个官方示例逻辑并不冲突,--servers参数本质是创建网关时直接给默认后端地址池添加后端IP,容器组不需要像VMSS那样主动绑定网关,只需要将每个容器组的IP手动加入对应后端地址池,再配置路径路由规则即可实现需求。

前置准备

  • 把5个容器组都部署到和Application Gateway同地域的同一个虚拟网络的专用子网(比如命名为aci-subnet)里,创建时可去掉公网IP配置,减少公网暴露同时节约成本,提前记录每个容器组的私网IP地址。
  • 单独创建Application Gateway专用的子网appgw-subnet,两个子网归属在同一个VNet下即可。
  • 提前申请固定公网IP,SKU选择标准型,分配模式设为静态。

核心配置步骤

1. 创建Application Gateway基础资源

创建时先配置默认监听器、默认后端池(可临时填写无效地址,后续会用自定义池替换),命令示例:

az network application-gateway create \
  --name <自定义网关名称> \
  --resource-group <资源组名称> \
  --vnet-name <虚拟网络名称> \
  --subnet appgw-subnet \
  --public-ip-address <提前创建的静态公网IP名称> \
  --sku Standard_v2 \
  --capacity 2

2. 为每个容器组创建独立后端地址池

每个容器组对应一个后端池,把对应容器组的私网IP添加到池内,以第一个容器组为例:

# 创建第一个容器组的后端池
az network application-gateway address-pool create \
  --gateway-name <网关名称> \
  --resource-group <资源组名称> \
  --name container1-pool \
  --servers <容器组1的私网IP>

# 剩余container2到container5的后端池按上述格式依次创建即可

3. 配置后端HTTP设置

如果所有容器组的服务端口一致,可共用同一份设置,端口不同则单独配置:

az network application-gateway http-settings create \
  --gateway-name <网关名称> \
  --resource-group <资源组名称> \
  --name aci-http-settings \
  --port 80 \
  --protocol Http \
  --cookie-based-affinity Disabled \
  --timeout 30

4. 配置URL路径映射规则

这是实现固定IP加路径路由的核心步骤,先创建路径映射基础规则,再为每个路径绑定对应后端池:

# 创建路径映射基础规则,同时绑定第一个容器的路径规则
az network application-gateway url-path-map create \
  --gateway-name <网关名称> \
  --resource-group <资源组名称> \
  --name aci-path-map \
  --path-rules "container1-rule" \
  --paths "/container1/*" \
  --address-pool container1-pool \
  --http-settings aci-http-settings \
  --default-address-pool <网关默认后端池名称> \
  --default-http-settings aci-http-settings

# 依次添加剩余4个容器的路径规则
az network application-gateway url-path-map rule create \
  --gateway-name <网关名称> \
  --resource-group <资源组名称> \
  --name container2-rule \
  --path-map-name aci-path-map \
  --paths "/container2/*" \
  --address-pool container2-pool \
  --http-settings aci-http-settings

# container3、container4、container5的规则按上述格式依次添加即可

5. 绑定路径映射到前端监听器

将路径映射规则和网关的80端口监听器绑定,替换默认路由规则:

az network application-gateway rule create \
  --gateway-name <网关名称> \
  --resource-group <资源组名称> \
  --name aci-path-routing-rule \
  --http-listener appGatewayHttpListener \
  --rule-type PathBasedRouting \
  --url-path-map aci-path-map \
  --priority 100

注意事项

  • 如果容器组的服务是在根路径提供服务,需要额外在Application Gateway中配置重写规则,把请求路径里的/container[i]前缀去掉再转发给后端,否则会返回404;如果容器服务的路径前缀和路由前缀一致则无需额外配置。
  • 容器组默认私网IP为动态分配,重启后IP会变更,可给容器组配置静态私网IP,避免IP变更导致路由失效。
  • 需要HTTPS访问的话,给前端监听器绑定SSL证书即可,其余配置逻辑不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:36:03