AWS Elastic Beanstalk部署Nuxt.js SSR应用出现502错误如何解决
排查解决思路
- 端口配置匹配检查
EBS的Node.js运行环境默认将Nginx反向代理请求转发到127.0.0.1:8080,而Nuxt默认监听3000端口,端口不匹配是该报错最常见的原因。可任选以下一种方式修正:- 调整Nuxt配置文件(nuxt.config.js/ts)的服务监听规则:
export default defineNuxtConfig({ server: { port: process.env.PORT || 8080, // 优先读取EBS自动注入的PORT环境变量 host: '0.0.0.0' // 解除本地访问限制,允许实例内流量访问 } })- 直接修改package.json的生产启动命令:
"scripts": { "start": "nuxt start --port 8080 --host 0.0.0.0" } - 构建与启动流程校验
确保上传到EBS的部署包已执行过nuxt build生成生产构建产物,且EBS配置的启动命令为生产启动命令nuxt start,而非开发模式的nuxt dev。 - 端口占用排查
因当前EBS环境还运行其他Node微服务,需确认8080端口未被占用:- SSH连接到EBS实例,执行
netstat -tulpn | grep 8080查看端口占用情况 - 若端口已被其他服务占用,可为Nuxt分配其他空闲端口,同步修改EBS Nginx配置中对应站点的上游转发端口即可
- 若8080端口无进程监听,说明Nuxt服务启动失败,可查看Node运行日志
/var/log/nodejs/nodejs.log排查启动报错(常见原因有依赖缺失、环境变量配置错误等)
- SSH连接到EBS实例,执行
- Nginx代理规则校验
若曾自定义修改EBS的默认Nginx配置,需确认当前站点的根路径转发规则未被其他微服务配置覆盖,默认转发规则应为location / { proxy_pass http://127.0.0.1:8080; }
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

