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

EC2部署的Express服务可正常访问但React前端请求报404如何解决

问题解决方法
  • 首要排查端口不匹配问题:你提供的Express服务代码中监听端口为3001,但你标注的EC2服务访问地址端口为3000,二者不一致是最可能的原因
    • 本地运行时你前端请求的是3001端口的本地服务,因此运行正常;部署到EC2后你前端仍请求3000端口,自然无法匹配到运行在3001端口的服务,返回404
    • 修复方式:二选一即可
      • 修改服务代码中监听端口为3000,即把app.listen(3001, ...)改为app.listen(3000, ...),重新部署到EC2
      • 修改前端请求地址的端口为3001,同时确认EC2实例的安全组已经开放3001端口的公网入站规则
  • 其他常规排查点:
    • 登录EC2实例执行netstat -tunlp | grep node,确认Node服务实际监听的端口和你预期一致
    • 确认前端请求的路径和服务注册的路由完全匹配,当前服务仅注册了GET /路由,若前端请求/api/xxx等其他路径会直接返回404
    • 确认部署到EC2的代码为最新版本,避免本地修改后未同步到服务器导致的路由/端口差异
    • 可在服务所有路由注册完成后添加全局404捕获中间件,方便定位错误:
app.use('*', (req, res) => {
  res.status(404).send(`路由不存在:${req.method} ${req.originalUrl}`)
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 09:45:03