部署在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_URLJWT_SECRETJWT_EXPIRES_INGOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETGOOGLE_CALLBACK_URLRAZORPAY_KEY_IDRAZORPAY_KEY_SECRETFRONTEND_URL
已尝试的解决方法
- 修正启动文件路径(
dist/main.jsvsdist/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
相关产品推荐
相关产品推荐

