You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure App Service部署Node.js应用始终返回HTTP ERROR 404排查

排查Azure App Service Node.js应用404错误的方案

先明确:Azure App Service不需要手动添加端口防火墙规则,平台会自动将外部请求转发到你代码里process.env.PORT指定的端口,所以端口不是问题核心,别在这浪费时间。

以下是几个你可能遗漏的关键点:

1. 确认启动命令配置正确

Azure App Service需要明确知道怎么启动你的Node.js应用,默认会找package.json里的start脚本。如果你的项目里没有package.json,或者start脚本没配置,平台可能无法正确启动应用。

  • 如果你没有package.json,在项目根目录创建一个,添加:
    {
      "scripts": {
        "start": "node index.js"
      }
    }
    
  • 或者直接在Azure门户的App Service配置里设置启动命令:
    进入你的App Service → 配置 → 常规设置 → 启动命令,填入node index.js,保存后重启应用。

2. 检查部署文件是否在正确目录

Azure App Service的Node.js应用需要部署到wwwroot目录下。确认你的DevOps流水线是否把所有必要文件(index.js、package.json等)都部署到了site/wwwroot路径下。

可以通过门户的“高级工具”→“Kudu”→“调试控制台”→“CMD”,进入site/wwwroot目录,看看是否有你的index.js文件,以及文件内容是否正确。

3. 查看应用日志,确认应用是否真的启动

门户显示“启动状态”不代表应用实际运行成功,可能启动过程中崩溃了但平台没检测到。

  • 开启应用日志:进入App Service → 监控 → 日志流,或者在“配置”→“日志”里开启“应用日志文件”,然后查看日志内容。
  • 日志里如果有类似Error: Cannot find module...或者其他启动错误,就能定位问题。你的代码用的是原生http模块,大概率是启动命令或文件路径的问题。

4. 验证路由匹配逻辑

虽然你本地访问正常,但可以在代码里加日志打印实际收到的请求URL,确认是否和预期一致:
修改index.js,在处理请求时添加一行:

console.log('Received request URL:', request.url);

然后通过日志流查看实际请求路径,排查是否有路径转发导致的匹配问题。

5. 确认Node.js版本兼容

你切换了版本但没用,可检查package.json里的engines字段是否和你设置的版本一致(如果有的话):

{
  "engines": {
    "node": "~18"
  }
}

同时确保指定的版本在Azure App Service支持的列表范围内。

按上面的步骤排查,最常见的问题就是没配置启动命令,导致平台不知道怎么启动应用——虽然门户显示启动,但实际没有运行服务,所以访问返回404。

内容的提问来源于stack exchange,提问作者eliassal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 07:10:28