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

部署在Railway的NestJS应用所有路由返回502 Bad Gateway问题排查求助

部署在Railway的NestJS应用所有路由返回502 Bad Gateway问题排查求助

我把NestJS后端部署到Railway之后,访问Swagger API时一直遇到502 Bad Gateway错误,想请大家帮忙排查下问题。

问题详情

后端容器启动正常,日志显示NestJS应用已运行,数据库也连接成功,但所有请求:

  • /
  • /api(Swagger页面)
  • 其他任意路由

都返回502 - Application failed to respond,Swagger UI完全打不开。

日志信息

应用日志

Nest application successfully started
Database Connected Successfully

Railway HTTP日志

GET /api → 502
GET /favicon.ico → 502

相关配置

Swagger设置(main.ts)

SwaggerModule.setup('api', app, document);

服务启动代码(main.ts)

const port = process.env.PORT || 3000;
await app.listen(port, '0.0.0.0');

Railway部署配置

  • 构建命令:
    npm install && npx prisma generate && npm run build
    
  • 启动命令:
    npm run start:prod
    
  • package.json片段:
    "start:prod": "npx prisma generate && node dist/src/main.js"
    

Railway环境变量

  • DATABASE_URL
  • JWT_SECRET
  • JWT_EXPIRES_IN
  • GOOGLE_CLIENT_ID
  • GOOGLE_CLIENT_SECRET
  • GOOGLE_CALLBACK_URL
  • RAZORPAY_KEY_ID
  • RAZORPAY_KEY_SECRET
  • FRONTEND_URL

已尝试的解决方法

  • 修正启动文件路径(dist/main.js vs dist/src/main.js)
  • 确保部署期间生成了Prisma客户端
  • 使用await app.listen(port, '0.0.0.0')绑定所有地址
  • 添加了根路径健康检查路由/
  • 验证AppController已在AppModule中注册
  • 移除了Railway上自定义的PORT变量
  • 清理dist文件夹后重新构建
  • 将TS配置从NodeNext重置为CommonJS
  • 多次重新部署
  • 验证数据库连接日志
  • 确认Railway服务显示为Active状态

但问题依旧,访问/api还是返回502 Application failed to respond。

疑问

为什么NestJS日志显示**"Nest application successfully started"**,但Railway的所有请求都返回502?会不会是配置或网络问题导致Railway无法收到正确的HTTP响应?有没有什么调试建议?

备注:内容来源于stack exchange,提问作者Parag Patwa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 18:14:36