Spring Boot:项目服务器完整部署教程(零基础可直接实操)
本地写好的 Spring Boot 项目想要让外网所有人访问、线上运行就需要部署到云服务器阿里云/腾讯云/华为云等。Spring Boot 内置 Tomcat无需单独安装 Tomcat打包成 Jar 包即可直接运行是目前最主流、最简单的部署方式。本文讲解最通用、企业最常用的 Jar 包部署方案包含环境安装、打包、上传、运行、后台常驻、开机自启、域名访问、故障排查全程可直接复刻操作。一、部署前置准备服务器必备环境主流服务器系统CentOS 7 / CentOS 8 / Ubuntu本文以 CentOS 为例。1.1 安装 JDK必须Spring Boot 项目运行依赖 JDK推荐 JDK8 / JDK17适配绝大多数项目。CentOS 一键安装命令yum install -y java-1.8.0-openjdk-devel安装完成验证java -version输出版本号即安装成功。1.2 服务器放行端口关键外网访问必备Spring Boot 默认端口 8080必须在服务器安全组放行端口否则外网打不开项目。阿里云/腾讯云后台 → 安全组 → 入站规则放行端口8080、80、443后续域名、HTTPS 使用协议TCP授权所有IP0.0.0.0/0同时关闭服务器防火墙或开放端口# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld二、本地项目打包生成可运行 Jar 包2.1 确认配置Spring Boot 项目默认打包方式为 Jar无需修改配置保证 pom.xml 中打包方式正确packagingjar/packaging2.2 IDEA 一键打包最简单1、打开 IDEA 右侧Maven面板2、找到当前项目 → Lifecycle3、依次执行clean → package打包成功后在项目target目录下生成xxx.jar文件这就是部署包。命名建议demo-1.0.jar简洁无中文、无空格。或者通过命令clean删除target/目录清空旧的构建产物package编译 → 测试 → 打包成 JAR-DskipTests跳过测试项目没有测试代码加上这个更快// 编译 打包mvn clean package -DskipTests三、上传 Jar 包到服务器使用工具Xshell、FinalShell、WinSCP 均可推荐 FinalShell可视化上传。3.1 新建部署目录服务器新建专门存放项目的文件夹统一管理mkdir -p /home/springboot cd /home/springboot3.2 上传文件将本地 target 下的xxx.jar直接拖拽上传至/home/springboot目录。四、运行 Spring Boot 项目两种方式4.1 临时运行测试用关闭终端项目停止// 直接启动 SpringBoot 内置 Tomcat加载项目、运行端口、启动所有功能。 java -jar demo-1.0.jar看到Started XxxApplication in xxx seconds即启动成功。缺点关闭 Xshell 终端项目直接停止仅适合测试。4.2 正式运行后台常驻企业生产用使用 nohup 让项目后台运行退出终端不关闭且自动输出日志nohup java -jar demo-1.0.jar log.out 21命令解释nohup后台运行忽略终端关闭信号 log.out将日志输出到 log.out 文件21错误日志统一输出后台常驻进程五、项目启停、重启常用命令5.1 查看项目运行状态# 查看Java进程 ps -ef | grep java5.2 停止项目先查询 PID再 kill 进程# 优雅停止 kill -9 进程PID5.3 重启项目部署更新必用1、停止旧进程2、上传新 Jar 包3、重新执行后台启动命令5.4 查看运行日志# 实时查看日志 tail -f log.out六、配置服务器开机自启项目永久在线实现服务器重启后项目自动启动无需手动操作。6.1 创建系统服务文件vim /etc/systemd/system/springboot.service6.2 写入以下配置直接复制修改Jar包名[Unit] DescriptionSpringBoot Project Afternetwork.target [Service] Typesimple # 此处替换为你的服务器Jar包绝对路径 ExecStart/usr/bin/java -jar /home/springboot/demo-1.0.jar Restartalways [Install] WantedBymulti-user.target6.3 生效自启配置# 重新加载配置 systemctl daemon-reload # 设置开机自启 systemctl enable springboot # 启动项目 systemctl start springboot # 查看状态 systemctl status springboot6.4 自启常用命令# 停止项目 systemctl stop springboot # 重启项目 systemctl restart springboot # 取消开机自启 systemctl disable springboot七、外网访问项目7.1 IP端口访问启动成功后直接通过服务器公网IP8080端口访问示例http://120.xx.xx.xx:80807.2 域名访问可选1、购买域名完成备案2、域名解析A记录 → 指向服务器公网IP3、服务器安装 Nginx 反向代理实现 80 端口直接访问无需带8080Nginx 就是 SpringBoot 项目的外网门面负责接客、安全防护、简化访问、分担压力让后端程序只专注处理业务逻辑。部署方式访问地址安全性企业使用场景纯 Jar 裸跑无 Nginx必须带 8080 端口低后端直接暴露公网本地测试、临时演示Nginx Jar 部署无需端口域名直接访问高隐藏后端服务正式线上生产环境八、常见部署报错排查报错现象核心原因解决方案外网打不开项目安全组/防火墙未放行8080端口云服务器后台放行端口关闭防火墙端口被占用8080端口已有进程运行kill占用进程或修改项目端口启动瞬间闪退JDK未安装、Jar包损坏、配置错误检查java版本重新打包上传查看日志数据库连接失败本地数据库地址未改服务器地址application.yml 改为服务器数据库IP九、部署总结企业标准流程1、服务器安装 JDK8放行对应端口2、本地 Maven 打包生成 Jar 包3、上传至服务器指定目录使用 nohup 后台运行4、配置 systemd 开机自启保证项目稳定在线5、通过公网IP端口外网访问搭配Nginx实现域名访问。该方案稳定、零成本、无容器依赖是中小企业 Spring Boot 项目最主流的线上部署方式。