Azure应用网关连接内部Container Apps环境故障排查求助
排查方向建议
1. 验证DNS解析有效性
- 在应用网关所在子网的虚拟机(若有)执行
nslookup <你的ACA应用FQDN>,确认解析结果与azurerm_container_app_environment.this.static_ip_address一致 - 检查私有DNS区域链接
azurerm_private_dns_zone_virtual_network_link.aca_link的状态,确保显示为已链接 - 确认通配符A记录
*的配置覆盖了ACA应用的FQDN格式(ACA应用FQDN通常为{应用名}.{环境默认域名},通配符记录应能匹配该格式)
2. 检查网络连通性
- 确认应用网关所在VNet与ACA环境的VNet已建立对等连接(若分属不同VNet),或处于同一VNet内
- 检查应用网关子网的NSG出站规则,是否允许向ACA静态IP的80端口发起流量
- 启用应用网关的诊断日志,查看健康探测请求的目标IP、Host头及具体响应细节,定位请求是否到达ACA
3. 验证ACA应用健康端点可用性
- 从VNet内的测试机器直接访问
http://<ACA应用FQDN>/actuator/health,确认返回状态码在200-399范围内 - 检查Spring Boot应用配置:
- 确认
management.endpoints.web.exposure.include包含health - 若启用了Spring Security,需确保
/actuator/health端点允许匿名访问
- 确认
- 查看ACA应用的容器日志,排查是否存在启动失败或端点访问异常的记录
4. 调整应用网关配置
- 检查后端HTTP设置的
pick_host_name_from_backend_address是否正确:内部ACA环境需要通过正确的Host头路由到指定应用,该配置应设为true(当前配置已设置,但需确认FQDN解析正确) - 临时修改健康探测路径为
/,测试是否能返回正常状态码,排除Actuator端点配置问题 - 确认后端HTTP设置的端口与ACA应用暴露的端口一致(ACA默认对外暴露80端口,需与容器内应用监听端口匹配)
内容的提问来源于stack exchange,提问作者Christian
相关产品推荐
相关产品推荐

