项目上线流程
将打包好的 Spring Boot 项目部署到已有服务器,最推荐的方式是。这种方式利用了 Spring Boot 内嵌 Tomcat 的特性,无需额外安装 Web 容器,且通过系统服务管理能保证项目在后台稳定运行、开机自启。
将打包好的 Spring Boot 项目部署到已有服务器,最推荐的方式是使用 JAR 包直接运行并配合 Systemd 进行进程守护。这种方式利用了 Spring Boot 内嵌 Tomcat 的特性,无需额外安装 Web 容器,且通过系统服务管理能保证项目在后台稳定运行、开机自启。
以下是标准化的上线操作步骤:
环境准备与文件上传
在部署前,必须确保服务器的基础环境与项目构建时的要求一致。
- 检查 JDK 版本:Spring Boot 3.x 需要 JDK 17+,2.x 通常需要 JDK 8 或 11。请在服务器终端执行
java -version确认。 - 上传 JAR 包:使用 FTP 工具(如 WinSCP、Xftp)或命令行(
scp)将本地target目录下的.jar文件上传至服务器的指定目录(例如/opt/myapp/)。
生产环境配置优化
不要直接使用开发环境的配置文件,建议采用外部化配置以隔离敏感信息。
- 创建外部配置文件:在 jar 包同级目录下创建
application-prod.yml(或.properties)。 - 修改关键参数:
- 端口:避免使用默认的 8080,防止冲突或被扫描攻击。
- 数据库:指向生产环境的数据库地址,切勿使用本地 localhost。
- 日志:配置日志输出路径和级别(生产环境建议 INFO 或 WARN),避免控制台输出过多日志拖慢性能。
编写启动脚本与服务注册
直接使用 java -jar 命令关闭窗口后程序会终止,因此需要将其注册为 Linux 系统服务。
- 创建服务文件:执行
vim /etc/systemd/system/myapp.service,写入以下内容:
[Unit]
Description=My Spring Boot Application
After=syslog.target network.target
[Service]
User=root
ExecStart=/usr/bin/java -jar /opt/myapp/app.jar --spring.profiles.active=prod
SuccessExitStatus=143
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
注意:请将
ExecStart中的 Java 路径和 Jar 包路径替换为你服务器的实际路径。--spring.profiles.active=prod用于激活刚才创建的生产环境配置。
- 启动与管理:
- 重载配置:
systemctl daemon-reload - 启动项目:
systemctl start myapp - 设置开机自启:
systemctl enable myapp - 查看状态:
systemctl status myapp
- 重载配置:
网络与安全配置
项目启动成功后,还需要确保外部能够访问。
- 开放防火墙端口:如果服务器开启了防火墙(如
firewalld或iptables),需放行项目监听的端口。 - 配置云安全组:如果是阿里云、腾讯云等云服务器,必须在控制台的“安全组”规则中添加入方向规则,放行对应的 TCP 端口。
- 反向代理(可选):建议使用 Nginx 作为反向代理,将 80/443 端口转发到 Spring Boot 的内部端口,这样既能隐藏真实端口,又能方便后续配置 SSL 证书和静态资源缓存。
按照上述步骤操作,即可完成一个标准、稳定的 Spring Boot 后端项目上线流程。如果在启动时遇到报错,请优先检查 systemctl status myapp 输出的日志信息以及 JDK 版本是否匹配。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)