能否将Azure Web App与虚拟机部署在同一VNet的同一子网内
Azure子网部署Web App与虚拟机问题解答
是否可以将虚拟机与Web App部署在同一子网?
不可以。
不可行的核心原因
Azure的Web App VNet集成功能要求绑定的子网必须完成 Microsoft.Web/serverFarms 专属服务委托:
- 服务委托配置的前置要求就是子网为空,这也是你第一次部署Web App时收到「子网必须为空」报错的原因
- 完成委托后的子网仅允许部署对应App Service计划下的Web App实例,不支持部署虚拟机等其他类型的Azure资源,因此你完成Web App集成后回迁虚拟机会收到「子网中已存在外部资源」的报错,这是Azure平台的硬性规则限制。
是否由子网地址范围不足导致?
不是。
你遇到的两类报错都是资源类型与子网委托规则不匹配导致的权限类错误,和地址数无关。如果是地址范围不足,平台会明确返回IP地址耗尽类提示,和你收到的报错提示完全不同。
可替代的部署方案
- 拆分两个独立子网:在同一虚拟网络下新建两个子网,一个配置Microsoft.Web/serverFarms委托专门部署Web App,另一个不配置委托用来部署虚拟机。同一VNet下的子网默认内网互通,无需额外配置路由即可满足两个资源内网互访的需求。
- 改用应用服务环境部署:如果有高密度同子网部署诉求,可以选择部署App Service Environment(ASE),ASE本身占用专属子网,虚拟机可部署在同一VNet下的其他子网,内网天然连通。
- 取消Web App VNet集成:如果没有强内网互通要求,可以取消Web App的子网集成配置,通过公网访问控制实现互通:给Web App配置访问限制规则,仅放行虚拟机的公网IP访问,同时为虚拟机配置静态公网IP即可。
内容的提问来源于stack exchange,提问作者Hathors
相关产品推荐
相关产品推荐

