Azure VNet应用服务公网可访问问题及应用网关私有部署咨询
方案可行性说明
这个方案完全可行,Azure原生支持通过应用网关作为唯一公网入口,将应用服务配置为仅接受来自网关的流量,彻底禁用直接公网访问。
具体配置步骤
1. 确认应用服务的VNet集成状态
你已经把应用服务部署到VNet子网里,先确认是Regional VNet集成(不是需要网关的那种),这种集成方式允许应用服务和同VNet内的应用网关直接通信,不需要额外的VPN或ExpressRoute。
2. 给应用服务加访问限制,切断直接公网访问
进入每个应用服务的「网络」→「访问限制」页面:
- 添加入站允许规则:类型选「虚拟网络」,选择应用网关所在的子网(如果网关在另一个VNet,先做VNet对等连接,再选对等VNet里的网关子网),优先级设高一点(比如100,保证这条规则先匹配)
- 最后加一条默认拒绝规则:优先级设最低(比如1000),拒绝所有未被允许的流量
- 保存后,直接访问应用服务的原始URL应该会返回403
3. 配置应用网关对接应用服务
后端池配置
- 进入应用网关的「后端池」,添加两个应用服务作为后端目标,类型选「App Service」,直接选中你的两个应用服务即可
- 注意:如果之前给应用服务加了访问限制,必须确保网关子网在允许列表里,否则网关无法转发流量
HTTP设置与健康探测
- 创建HTTP设置:开启「从后端地址选取主机名」,这样网关转发请求时会带上应用服务的原始主机名,避免应用服务返回错误
- 配置健康探测:用应用服务的默认路径(比如
/),调整探测间隔和超时时间,确保网关能正常检测应用服务的状态
路由规则与监听
- 创建公网监听:绑定应用网关的公网IP,设置80/443端口(如果用HTTPS,提前上传SSL证书到网关)
- 创建路由规则:把监听的流量转发到刚才配置的后端池,完成流量路由
4. 验证效果
- 直接访问应用服务的原始URL:应该返回403 Forbidden,说明直接公网访问被切断
- 通过应用网关的公网IP或绑定的自定义域名访问:能正常加载页面,说明流量通过网关正常转发
- 查看应用服务的访问日志,确认所有请求都来自应用网关的子网IP段
内容的提问来源于stack exchange,提问作者Greg
相关产品推荐
相关产品推荐

