Spring Boot应用部署AWS Elastic Beanstalk遇严重健康状态及502错误求助
排查AWS Elastic Beanstalk部署Spring Boot应用502错误的实操步骤
1. 先确认本地Jar包可用性
- 本地执行
java -jar target/你的Jar包名称.jar,启动后用浏览器或curl访问http://localhost:8080/api/user,验证端点是否正常返回。如果本地都无法运行,优先解决代码或依赖问题。 - 检查Jar包是否为可执行格式:打开Jar内的
META-INF/MANIFEST.MF文件,确认包含以下关键属性:Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.yourpackage.YourApplication
2. 核对Elastic Beanstalk环境配置
- 端口匹配:EB默认监听5000端口,而Spring Boot默认用8080,二选一调整:
- 改Spring Boot端口:在
application.properties中添加server.port=5000,重新打包部署。 - 改EB配置:进入控制台→环境→配置→软件,在「环境属性」中添加键值对
SERVER_PORT=8080,告知EB应用使用的端口。
- 改Spring Boot端口:在
- 资源与权限:确保实例类型(如t2.micro及以上)有足够内存,避免启动时OOM;同时确认IAM角色具备S3读取权限(EB会从S3拉取你的Jar包)。
3. 查看EB日志定位启动故障
- 登录EB控制台,进入目标环境,点击左侧「日志」→「完整日志」或「请求日志」下载查看:
- 重点关注
web.stdout.log和web.stderr.log,里面会记录Spring Boot启动时的报错,比如依赖缺失、配置文件错误、端口冲突等。 - 也可通过「监控」→「日志流」实时查看日志,搜索
Exception、Failed to start等关键词快速定位问题。
- 重点关注
4. 检查Maven打包流程
- 用
mvn clean package替代单纯的mvn package,清理旧编译文件避免干扰。 - 若为多模块项目,确保打包的是包含启动类的模块,且pom.xml中打包方式为
jar:<packaging>jar</packaging> - 查看
mvn package输出日志,确认无编译或测试失败,若需跳过测试可执行mvn clean package -DskipTests。
5. 验证部署包与流程
- 从EB关联的S3存储桶下载部署的Jar包,本地运行确认未损坏。
- 尝试用EB CLI部署:安装CLI后,在项目根目录执行
eb init、eb deploy,查看部署过程中的报错提示。
内容的提问来源于stack exchange,提问作者Bruna
相关产品推荐
相关产品推荐

