前言
本地运行得好好的项目,一部署到服务器就各种报错?这篇文章带你从零开始,在雨云服务器上完成Spring Boot项目的完整部署。
为什么需要一台云服务器?
很多Java初学者会遇到这样的场景:在本地写好的Spring Boot项目,自己用localhost:8080访问一切正常,但想让朋友看看、或者在课程设计答辩时演示,就卡住了。
问题的本质是: 你的代码跑在本地电脑上,别人无法访问你的内网地址。
解决方案很简单: 把项目部署到一台有公网IP的云服务器上。只要是能联网的设备,都可以访问你的应用。
云服务器相对于本地电脑的优势很明显:
对于个人开发者、学生群体来说,雨云等国产云服务商的入门级配置(2核2G)已经足够支撑小型Spring Boot项目的部署需求。雨云成立于2018年,是国内具有自主知识产权的云计算服务提供商,持有国家工信部颁发的ISP证、IDC证、CDN证。
雨云优惠注册地址: 雨云 - 老一代云服务提供商
优惠码:Nzc0OTI0
部署前的准备工作
注册雨云账号并购买服务器
注册账号:访问雨云官网,完成注册。新用户通常可以获得首月优惠券。
注册完账号后进到雨云控制台,云服务器入口可以在后台的 总览 和 云产品 部分找到:

点击购买云服务器,接着选择服务器区域,建议选择国外机房,无需ICP备案,省去等待时间
配置方面选择2核2G一般够用了。

操作系统这一栏选择 宝塔面板10.0 [Ubuntu24.04/LNMP] 安装

都选好后就可以点击立即购买了,也可以选择1元试用1天。
购买后即可在我的云服务器这里看到你买的云服务器
这里以我购买过的服务器来演示
点击管理。

接着就可以看到云服务器的信息了,在这里重装/切换系统,可以升级配置。

安全组配置:部署前的第一道防线
很多新手拿到服务器的第一件事就是SSH登录,然后开始装软件——这个顺序是错误的。安全组是云服务器的虚拟防火墙,必须先配置再部署。
登录雨云控制台,进入服务器管理页,找到「安全组」或「防火墙」设置,在入方向放行以下端口:
| 端口 | 用途 | 建议 |
|---|---|---|
| 22 | SSH远程连接 | 建议限制为你的个人IP,避免被暴力破解 |
| 8080 | Spring Boot默认端口 | 部署测试时开放 |
| 80 | HTTP网站访问 | Nginx代理时使用 |
| 443 | HTTPS(SSL证书) | 生产环境必备 |
| 3306 | MySQL数据库 | 不要暴露在公网,仅内网访问 |
服务器环境配置
点击管理页面的宝塔面板

注意首次点击会出现默认用户名和密码,登陆成功后请及时修改
修改指令参考宝塔面板官方资料宝塔linux面板命令大全 - 宝塔面板
登录完成后点击终端按钮

开始安装JDK(Java运行环境)
Spring Boot项目必须依赖Java环境。在服务器终端执行以下命令:
Ubuntu系统:
# 1. 更新软件包列表
sudo apt update
2. 安装 OpenJDK 11
sudo apt install openjdk-11-jdk -y
验证安装:
java -version
本地项目打包
回到你的本地电脑,打开Spring Boot项目。
使用Maven打包
在项目根目录(有pom.xml的地方)打开终端,执行:
mvn clean package -DskipTests
mvn clean package -DskipTests
-DskipTests表示跳过测试用例,加快打包速度。执行成功后,在target目录下会生成一个.jar文件,例如myapp-0.0.1-SNAPSHOT.jar。
确认打包结果
在本地先运行一下,确保jar包可以正常启动:
java -jar target/xxx.jar
看到Spring Boot的启动横幅(Spring标志ASCII Art),说明打包成功。按Ctrl+C停止。
上传并部署项目
上传JAR包到服务器
点击左边导航栏中的文件按钮
进入路径/www/wwwroot/default创建一个专门放应用的目录,管理更清晰:

进入以后点击新建按钮创建一个文件夹,名字随便但是不要有中文
进入文件夹点击上传上传电脑本地打包的文件
手动启动测试
上传完成后进入上传的文件夹中,点击页面中上方的终端按钮,输入以下命令确认服务器环境没问题:
java -jar xxx.jar --server.port=8080
在浏览器访问 http://你的服务器IP:8080,如果能看到你的应用页面或接口返回数据,说明部署成功!
排障提示:如果访问不了,检查以下几点:
配置Systemd服务(实现开机自启)
生产环境不能一直挂着终端窗口,需要让Java进程在后台持续运行,并且服务器重启后自动恢复。
先按Ctrl+C停止刚才手动启动的进程,然后回到上一个文件夹创建服务文件:
粘贴以下内容(根据实际情况修改路径和端口):
[Unit]
Description=My Spring Boot Application
After=syslog.target network.target
[Service]
Type=simple
User=root
ExecStart=/usr/bin/java -jar /opt/myapp/xxx.jar --server.port=8080
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
保存后执行:
重新加载服务配置
sudo systemctl daemon-reload
启动服务
sudo systemctl start myapp
设置开机自启
sudo systemctl enable myapp
查看运行状态
sudo systemctl status myapp
看到 active (running) 说明服务已成功运行。
下面整理几个部署过程中最常见的坑,以及对应的解决方案:
常见问题与避坑指南
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 访问不了8080端口 | 安全组/防火墙未放行 | 检查云控制台安全组和服务器防火墙 |
| JAR包无法启动 | JDK版本不匹配 | 检查java -version,确保与项目编译版本一致 |
| 端口被占用 | 有其他程序在用8080 | lsof -i:8080查占用进程,kill掉或换端口 |
| 数据库连不上 | MySQL只允许localhost | 在MySQL中创建允许远程连接的用户(开发测试用,生产不推荐) |
写在最后
从本地localhost到公网可访问,是每个Java开发者从“学习”走向“交付”的必经之路。云服务器的价值不在于配置多高,而在于它能让你写的代码真正跑在互联网上,被其他人看到、使用。
后续你可以继续探索:配置Nginx反向代理隐藏8080端口、绑定自己的域名、启用HTTPS……每多走一步,你的项目就离“正规军”更近一点。
如果你在部署过程中遇到具体问题,欢迎在评论区交流讨论!
Comments NOTHING