Azure App Service部署Node.js应用失败求助:容器启动超时
问题排查与解决
核心问题分析
你的代码硬编码了端口80,但Azure App Service会通过PORT环境变量动态分配端口(默认值为3000),平台要求应用必须监听这个环境变量指定的端口才能正确转发请求。日志显示服务器运行在3000端口,说明代码实际运行时使用了这个端口,但平台无法与应用建立连接,最终导致容器启动超时。
修复步骤
修改代码,适配平台端口要求
将代码中的端口定义改为优先读取环境变量,同时保留本地开发的默认值:import express from 'express' // 优先使用Azure提供的PORT环境变量,本地开发默认用80 const port = process.env.PORT || 80; const app = express(); app.get('/', (req, res) => { res.send("Hello World"); }) app.get('/test', (req, res) => { res.send("Hello, Azure") }) app.listen(port, () => { console.log("Server Is Running On Port", port) })重新部署应用
将修改后的代码重新部署到Azure App Service,部署完成后查看日志:- 确认日志显示服务器运行的端口与
PORT环境变量一致(通常为3000) - 检查容器是否正常启动,无超时错误提示
- 确认日志显示服务器运行的端口与
验证应用访问
再次访问应用URL,确认页面能正常加载并显示内容。
额外说明
Azure App Service不允许应用直接监听80端口(容器内部端口由平台统一管理),必须通过process.env.PORT获取平台分配的端口,这是部署Node.js应用的标准配置要求。
内容的提问来源于stack exchange,提问作者programmmer
相关产品推荐
相关产品推荐

