Azure应用网关WAF V2访问Web App时带端口80报错问题
Azure应用网关跳转带80端口问题解决
核心原因
Azure Web App在处理带显式80端口的请求时,跳转(尤其是Azure AD认证跳转)会将该端口追加到目标URL中,导致访问webapp.azurewebsites.net:80出现错误;手动移除端口后恢复正常,需通过配置消除端口显式暴露。
解决步骤
1. 修正后端设置配置
- 切换后端协议至HTTPS:在应用网关的后端设置中,将目标协议改为HTTPS,端口设为443。Azure Web App默认通过443提供HTTPS服务,且默认端口在URL中可省略,跳转时不会显式携带端口。
- 覆盖Host头(HTTP场景):若必须使用HTTP(80端口),需在后端设置中开启
覆盖后端路径,同时添加自定义Host头部,值设置为Web App的FQDN(如webapp.azurewebsites.net,不带端口)。这会让Web App收到的请求Host头不含端口,跳转时不再追加80。
2. 调整Azure AD认证配置
- 更新Azure AD应用注册的回复URL(Redirect URI):将其设置为应用网关的公网IP或自定义域名(不带端口,如
http://<网关公网IP>),而非Web App的原始域名。 - 配置Web App的允许外部重定向URL:在Web App的“身份验证”设置中,添加应用网关的地址,确保认证跳转时不会被拦截。
3. 添加URL重写规则(兜底方案)
若上述配置仍未解决问题,可在应用网关路由规则中添加URL重写:
- 规则类型选“URL重写”,设置条件为
URL包含":80" - 重写动作选择“替换字符串”,将
:80替换为空 - 确保该规则优先级高于默认路由规则,优先触发端口移除逻辑
关键配置验证
- 后端池:确认已添加Web App的完整FQDN(
webapp.azurewebsites.net),而非IP地址 - 监听器:HTTP监听器需与后端设置协议匹配,HTTPS监听器需配置对应SSL证书,后端同步使用HTTPS协议
- 健康探针:探针协议、端口需与后端设置一致,避免后端实例被标记为不健康
内容的提问来源于stack exchange,提问作者Metel Stairs
相关产品推荐
相关产品推荐

