当前位置: 首页 > news >正文

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,授权所有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 项目最主流的线上部署方式。

http://www.jsqmd.com/news/1245317/

相关文章:

  • OpenCV C++提取webp动图里的图片
  • 2026年7月最新公告:宝珀佛山服务网点地址及售后电话热线汇总 - 宝珀官方售后服务中心
  • Spring Boot 3 + Vue 3 美食分享与点评平台源码 前后端分离实战
  • 雷达图制作全攻略:从原理到Python/Excel实现
  • 计算机毕业设计之在线医疗咨询网站
  • Java 微服务项目应用架构制品自动生成工具(TOGAF AA 系列 / MCP Server / 开源)
  • ResNet-18与CIFAR-10实战:从原理到调优全解析
  • All 4项目:多设备兼容性测试与系统集成实践指南
  • 2026年7月风机变频器/变频器工厂推荐分析_河南众力达电气设备有限公司 - 品牌宣传支持者
  • 2026年7月保温铝包木工程门窗/别墅铝包木工程门窗制造商推荐合集_天津宇晟建筑工程有限公司 - 行业平台推荐
  • 长沙治理烧机油,四种方案怎么选?最不推荐VS最推荐,一次说清楚 - 资讯报道
  • Oracle动态SQL与REF CURSOR实战指南
  • 没有完美的系统:辩证法视角下的计算机架构演进与实践论
  • ChatGPT记忆功能解析:从技术原理到编程与写作实践
  • 计算机毕业设计之在线音乐系统的设计与实现
  • 基于LLM的自然语言数据查询框架:元数据驱动架构设计与实现
  • 重磅通知:万国重庆2026年7月最新服务网点地址及售后热线电话 - 万国中国官方服务中心
  • 文本预处理一般包括哪些常见步骤?
  • 欧米茄苏州2026年7月售后客户服务最新网点地址与热线电话公告 - 欧米茄官方服务中心
  • 南宁万国回收商家实测:2026年7月最新服务怎么样?避坑指南+排行来了! - 诚收名表回收平台
  • 劳力士服务项目及价格查询|网点地址和联系电话权威信息通告(2026年7月最新) - 劳力士服务中心
  • UTM运行精简版Windows10:低配设备的虚拟化优化方案
  • 开源大模型Kimi K3与Qwen 3.8部署实践:从环境配置到生产应用
  • 合肥灭蟑螂怎么选?2026年合肥本土合规防制实操指南 - 资讯报道
  • SEO内容优化四大核心维度与实战技巧
  • 伪装字体无文件载荷 BEC 钓鱼攻击规避技术与闭环防御体系研究
  • 杰克·多尔西推出 Buzz:融合团队聊天、AI 智能体与 Git 代码托管服务
  • 深度拆解 LangChain 的 7 大核心局限性:从 Demo 到生产,这些坑你早晚要踩
  • 2026年7月最新帝舵盐城盐都万达广场维修保养服务电话 - 帝舵中国官方服务中心
  • Unity中Gaussian Splatting性能优化:从10FPS到147FPS的实战方案