本地测试正常但AWS App Runner健康检查失败,求解决方案
解决AWS App Runner部署Nuxt2 SSR应用健康检查失败问题
以下是针对你遇到问题的具体排查和解决步骤:
强制Nuxt绑定所有网络接口
本地运行时localhost可访问,但容器环境中必须让应用监听0.0.0.0,否则App Runner无法从外部访问应用端口。修改nuxt.config.js:export default { server: { host: '0.0.0.0', // 关键配置:绑定到所有可用网络接口 port: 3000 // 保持与App Runner健康检查配置的端口一致 } }确认启动命令为生产模式
禁止使用npm run dev作为启动命令,Nuxt2生产环境需要先构建再启动:- 构建命令:
npm run build - 启动命令:
npm run start
同时检查package.json的scripts配置是否正确:
"scripts": { "dev": "nuxt", "build": "nuxt build", "start": "nuxt start" }- 构建命令:
调整健康检查参数
默认健康检查的初始延迟可能不足以让Nuxt应用完成启动,建议修改:- 初始延迟:设置为60秒
- 检查间隔:10秒
- 超时时间:5秒
- 失败阈值:3次
查看应用日志定位根因
登录AWS控制台进入对应App Runner服务,查看部署日志,确认是否存在启动错误:- 依赖包缺失
- 端口被占用
- 环境变量未配置
- 构建过程失败
Docker部署需确认端口暴露
若使用Dockerfile部署,确保添加EXPOSE指令并匹配端口:FROM node:16-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build EXPOSE 3000 CMD ["npm", "start"]
内容的提问来源于stack exchange,提问作者ANAS KHAN
相关产品推荐
相关产品推荐

