如何减少Azure Web App出站IP以添加至Flexible PostgreSQL服务器防火墙
解决Azure Web App出站IP过多及Strapi访问PostgreSQL的问题
核心思路
要解决大量出站IP的问题,核心是让Web App和PostgreSQL通过虚拟网络(VNet)隔离访问——要么固定Web App的出站IP,要么直接让数据库只允许VNet内的流量访问,完全跳过公共IP防火墙配置。
具体操作步骤
1. 确认并完善Web App的VNet集成
如果之前部署的组合实例已自动创建VNet,直接复用即可:
- 打开Azure Portal,进入你的Web App资源,左侧菜单选网络 -> VNet集成
- 检查是否已关联到PostgreSQL所在的VNet:
- 若未关联,点击添加VNet,选择目标VNet和一个空的子网(子网需满足至少/27的地址空间,且不能有其他资源)
- 若已关联,直接进入下一步
2. 让PostgreSQL只允许VNet内的Web App访问(无需配置任何公共IP)
这是最简便的方案,完全规避出站IP问题:
- 进入PostgreSQL资源,左侧菜单选连接安全性
- 找到VNet规则,点击添加VNet规则
- 填写规则名称,选择Web App所在的VNet和子网,点击确定
- 可选:关闭允许公共网络访问选项,进一步提升安全性,此时只有VNet内的资源能访问数据库
3. (可选)固定Web App的出站IP(若需访问公网资源)
如果你的Strapi还需要访问其他公网服务,需要固定出站IP:
- 在同一VNet下创建NAT网关资源:
- 配置一个或多个静态公共IP(这些就是后续Web App的固定出站IP)
- 将Web App集成的子网关联到这个NAT网关
- 回到Web App的VNet集成页面,确认子网已关联NAT网关
- 此时Web App所有出站流量都会通过NAT网关的静态IP,原来的大量动态出站IP不再生效
4. 验证配置
- 重启Web App,让VNet集成和NAT网关配置生效
- 测试Strapi与PostgreSQL的连接是否正常
- 若配置了NAT网关,可在Web App的属性页面查看出站IP,会显示你配置的静态IP
内容的提问来源于stack exchange,提问作者Qiuzman
相关产品推荐
相关产品推荐

