能否将Azure App Service Web应用挂载到子目录而非子域名?
Azure Linux App Service 子目录路由到多独立应用的实现方案
你的需求完全可行,针对Linux环境的Azure App Service,推荐以下两种主流实现方式:
方式一:Azure Front Door(推荐,适合多应用扩展场景)
这是最灵活的方案,尤其适合后续需要持续新增客户应用的场景:
- 创建Azure Front Door实例,将你的主域名
mydomain.com绑定到Front Door的自定义域名 - 为每个独立的App Service(App01、App02等)创建独立的后端池,每个后端池对应一个App Service实例
- 创建路由规则:
- 对于
/app1/*路径,设置路由规则将流量转发到App01的后端池,同时开启路径重写,将请求路径中的/app1前缀移除(比如把/app1/api/data重写为/api/data,确保App01能正确处理请求) - 同理,为
/app2/*路径创建对应路由规则,转发到App02的后端池并配置路径重写
- 对于
- 无需再为每个App Service绑定子域名,所有流量统一通过Front Door入口转发,后续新增应用只需添加新的后端池和路由规则即可
方式二:Azure Application Gateway(适合需要更多自定义网络配置的场景)
如果你的应用有特定的网络隔离需求(比如部署在虚拟网络内),可以选择Application Gateway:
- 创建Application Gateway实例,配置监听主域名
mydomain.com的HTTP/HTTPS流量 - 为每个App Service添加后端目标,配置健康探测确保后端可用
- 配置路径匹配规则:将
/app1/*匹配到App01的后端,/app2/*匹配到App02的后端 - 同样需要配置路径重写,移除子目录前缀,保证后端应用能正确解析请求路径
注意事项
- 所有后端App Service需要开启允许访问的IP范围,可以将Front Door或Application Gateway的出站IP添加到App Service的访问限制列表中,避免直接公网访问
- 确保每个App Service的应用代码能处理根路径以外的请求(如果之前是子域名访问,现在路径前缀被移除后,应用的路由配置无需修改,因为重写后路径和原请求一致)
内容的提问来源于stack exchange,提问作者Jules
相关产品推荐
相关产品推荐

