基于Docker镜像创建的Azure容器实例无法通过FQDN访问问题咨询
Azure容器实例Spring Boot应用公网访问失败排查方案
我在Azure平台创建了容器实例,对应的Docker容器运行状态正常。通过日志可确认Spring Boot应用已成功启动且已连接到Mongo数据库,配置中已包含公网IP、DNS及FQDN信息。我尝试通过FQDN访问对外接口,例如发起GET请求调用https://app.azurecontainer.io/api/v1/clients,但无法收到任何响应,使用Postman工具测试也同样失败,暂未找到解决访问问题的方法。
1. 端口配置校验
- 确认Azure容器实例暴露端口与Spring Boot监听端口完全匹配:Spring Boot默认监听
8080端口,若配置为其他端口(如HTTPS用8443),必须在ACI配置中同步暴露对应端口,且端口协议选择TCP - 验证端口映射逻辑:若使用HTTPS访问,需确认
443端口映射到应用HTTPS监听端口;若使用HTTP访问,需确认80端口映射到应用HTTP监听端口,避免协议与端口不匹配
2. 网络安全组规则校验
- 确认容器实例关联的子网/网卡网络安全组(NSG)入站规则,放通对应端口的公网访问权限:HTTPS访问需放通
443端口的0.0.0.0/0(或你测试用的公网IP段)入站权限,HTTP访问需放通80端口入站权限 - 可临时放开所有入站流量测试,确认是否为NSG拦截导致的访问失败,验证通过后再收紧权限范围
3. Spring Boot监听配置校验
- 确认Spring Boot配置文件中
server.address未设置为127.0.0.1,该配置会限制仅容器内部可访问应用,需修改为0.0.0.0允许所有网卡的请求接入 - 若启用HTTPS,确认SSL证书配置合法、无端口占用问题,可临时切换为HTTP访问测试,排除SSL配置错误影响
4. 容器内部连通性校验
- 进入Azure容器实例的终端执行界面,在容器内部执行
curl http://localhost:8080/api/v1/clients(替换为你应用实际监听的端口和接口路径),若内部访问无响应,说明为应用本身接口异常,与ACI网络配置无关 - 若内部访问正常,确认Azure控制台显示的容器实例公网IP处于已分配、可用状态
5. FQDN解析校验
- 在本地电脑执行
nslookup app.azurecontainer.io(替换为你实际的FQDN),确认解析结果与Azure控制台显示的公网IP一致,若解析异常可等待10分钟待DNS生效后重试,也可直接用公网IP访问测试
内容的提问来源于stack exchange,提问作者Rrue
相关产品推荐
相关产品推荐

