Spring Boot:项目服务器完整部署教程(零基础可直接实操)
2026/7/23 3:41:49 网站建设 项目流程

本地写好的 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,授权所有IP(0.0.0.0/0)

同时关闭服务器防火墙(或开放端口):

# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld

二、本地项目打包(生成可运行 Jar 包)

2.1 确认配置

Spring Boot 项目默认打包方式为 Jar,无需修改配置,保证 pom.xml 中打包方式正确:

<packaging>jar</packaging>

2.2 IDEA 一键打包(最简单)

1、打开 IDEA 右侧Maven面板

2、找到当前项目 → Lifecycle

3、依次执行: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/springboot

3.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 2>&1

命令解释:

nohup:后台运行,忽略终端关闭信号

> log.out:将日志输出到 log.out 文件

2>&1:错误日志统一输出

&:后台常驻进程

五、项目启停、重启常用命令

5.1 查看项目运行状态

# 查看Java进程 ps -ef | grep java

5.2 停止项目

先查询 PID,再 kill 进程:

# 优雅停止 kill -9 进程PID

5.3 重启项目(部署更新必用)

1、停止旧进程

2、上传新 Jar 包

3、重新执行后台启动命令

5.4 查看运行日志

# 实时查看日志 tail -f log.out

六、配置服务器开机自启(项目永久在线)

实现服务器重启后,项目自动启动,无需手动操作。

6.1 创建系统服务文件

vim /etc/systemd/system/springboot.service

6.2 写入以下配置(直接复制修改Jar包名)

[Unit] Description=SpringBoot Project After=network.target [Service] Type=simple # 此处替换为你的服务器Jar包绝对路径 ExecStart=/usr/bin/java -jar /home/springboot/demo-1.0.jar Restart=always [Install] WantedBy=multi-user.target

6.3 生效自启配置

# 重新加载配置 systemctl daemon-reload # 设置开机自启 systemctl enable springboot # 启动项目 systemctl start springboot # 查看状态 systemctl status springboot

6.4 自启常用命令

# 停止项目 systemctl stop springboot # 重启项目 systemctl restart springboot # 取消开机自启 systemctl disable springboot

七、外网访问项目

7.1 IP+端口访问

启动成功后,直接通过服务器公网IP+8080端口访问:

示例:http://120.xx.xx.xx:8080

7.2 域名访问(可选)

1、购买域名,完成备案

2、域名解析:A记录 → 指向服务器公网IP

3、服务器安装 Nginx 反向代理,实现 80 端口直接访问(无需带8080)

Nginx 就是 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 项目最主流的线上部署方式。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询