Azure App Service启动失败:无法建立新连接问题求助
针对Azure App Service部署自定义Tomcat镜像启动失败的解决方案
1. 修正NSG出站规则,确保SCM站点访问权限
- 你的NSG目前只开放了80/443泛端口,需要补充允许出站访问
*.scm.azurewebsites.net的443端口流量——App Service的SCM(Kudu)站点依赖这个地址完成代码拉取或容器通信。如果使用了私有网络或服务端点,要确认子网的网络策略没有阻断SCM站点的访问。 - 同时再次验证容器注册表的访问权限:确保App Service的托管标识拥有
AcrPull角色权限,或配置了正确的注册表访问密钥,避免因镜像拉取权限不足触发连接类错误。
2. 配置SCM与容器的通信开关
- 添加或更新应用设置
WEBSITE_DOCKER_SCM_ENABLED,将其值设为true。这个设置会允许SCM站点与你的自定义容器之间建立通信,满足启动时拉取代码的需求。 - 若容器内有主动从SCM地址拉取代码的逻辑,可进入Kudu站点的
Bash终端,执行curl https://<app-name>.scm.azurewebsites.net测试连通性,排查容器内的DNS解析或网络问题。
3. 完善端口与健康检查配置
- 确认
WEBSITES_PORT已正确设置为7000:可通过Azure CLI执行az webapp config appsettings list --name <你的应用名> --resource-group <资源组名>验证配置是否生效。 - 配置精准的健康检查路径:App Service默认检查根路径响应,需将健康检查路径设为
http://localhost:7000(或Tomcat的有效访问路径,比如/manager/html,需确保Tomcat允许访问),避免因健康检查失败导致平台误判容器未启动。
4. 深入排查容器启动细节
- 查看容器内部日志:通过Kudu站点的
Docker标签,或执行az webapp log tail --name <你的应用名> --resource-group <资源组名>,获取Tomcat的启动日志,排查是否存在端口占用、配置文件错误等容器自身的启动问题——这类问题也可能触发平台的连接错误提示。
内容的提问来源于stack exchange,提问作者Aniruddha Bera
相关产品推荐
相关产品推荐

