在腾讯云轻量应用服务器(Lighthouse)上部署 Spring Boot 项目,通常采用 Linux 环境 + Java + Maven/Gradle + Nginx 的经典组合。以下是一套完整、可落地的部署流程,适用于 Ubuntu 系统(以 Ubuntu 20.04/22.04 为例)。
✅ 一、前置准备
-
登录腾讯云控制台
- 进入「轻量应用服务器」→ 选择你的实例 → 点击「远程连接」(使用 SSH 或 Web Terminal)。
- 或使用本地终端:
ssh root@<你的公网IP>
-
更新系统并安装基础工具
sudo apt update && sudo apt upgrade -y sudo apt install curl git wget unzip -y
✅ 二、安装 JDK(推荐 OpenJDK 17 或 8)
Spring Boot 3.x 需要 JDK 17+;2.x 可用 JDK 8/11。
方式一:通过 apt 安装(推荐)
# 添加 Adoptium 源(OpenJDK 17)
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update
sudo apt install temurin-17-jdk -y
# 验证安装
java -version
javac -version
💡 若需 JDK 8:
sudo apt install openjdk-8-jdk
✅ 三、构建并上传 Spring Boot 项目
方案 A:在服务器上直接编译(适合小项目)
# 创建项目目录
mkdir -p ~/my-spring-app && cd ~/my-spring-app
# 上传源码(可通过 scp 或 Git clone)
# 示例:从 Git 拉取
git clone <你的仓库地址> .
# 或手动上传 zip 后解压
# 安装 Maven(若未安装)
sudo apt install maven -y
# 打包(跳过测试提速构建)
mvn clean package -DskipTests
✅ 生成文件:target/your-project-name-0.0.1-SNAPSHOT.jar
方案 B:本地打包后上传(推荐,避免服务器资源紧张)
# 本地执行
mvn clean package -DskipTests
# 得到 .jar 文件后,用 scp 上传到服务器:
scp target/*.jar root@<你的公网IP>:~/my-spring-app/
✅ 四、运行 Spring Boot 应用
方法 1:后台常驻进程(推荐生产环境)
cd ~/my-spring-app
nohup java -jar your-project.jar --server.port=8080 > app.log 2>&1 &
--server.port=8080:指定端口(默认 8080)app.log:日志输出文件- 查看进程:
ps aux | grep spring - 停止服务:
kill $(ps aux | grep 'your-project.jar' | grep -v grep | awk '{print $2}')
🔔 注意:确保防火墙放行该端口(见下文“安全组”部分)
方法 2:使用 systemd 管理(更稳定,推荐!)
# 创建服务文件
sudo nano /etc/systemd/system/spring-boot.service
填入以下内容(替换路径和 jar 名):
[Unit]
Description=Spring Boot Application
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/root/my-spring-app
ExecStart=/usr/bin/java -jar /root/my-spring-app/your-project.jar
Restart=always
RestartSec=10
Environment="JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64"
[Install]
WantedBy=multi-user.target
保存后启用服务:
sudo systemctl daemon-reload
sudo systemctl enable spring-boot
sudo systemctl start spring-boot
sudo systemctl status spring-boot
✅ 启动日志:journalctl -u spring-boot -f
✅ 停止:sudo systemctl stop spring-boot
✅ 五、配置防火墙与安全组
1. 云服务器安全组(腾讯云控制台)
- 进入实例详情页 → 「网络」→「安全组」
- 添加入站规则:
- 协议:TCP
- 端口范围:
8080(或你自定义的端口) - 授权对象:
0.0.0.0/0(生产环境建议限制 IP)
2. 服务器内部防火墙(可选)
Ubuntu 默认无 ufw,如需开启:
sudo ufw allow 8080/tcp
sudo ufw enable
✅ 六、(可选)反向X_X + HTTPS(Nginx)
让外部访问 http://your-domain.com 自动转发到 localhost:8080,并支持 HTTPS。
安装 Nginx
sudo apt install nginx -y
配置 Nginx 反向X_X
sudo nano /etc/nginx/sites-available/spring-boot
内容示例:
server {
listen 80;
server_name your-domain.com www.your-domain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/spring-boot /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
申请 SSL 证书(Let’s Encrypt)
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your-domain.com
按提示操作即可自动配置 HTTPS。
✅ 七、验证部署
# 本地浏览器访问:http://<你的公网IP>:8080 或 http://your-domain.com
curl http://localhost:8080/actuator/health # 若启用了 actuator
📌 最佳实践建议
| 项目 | 建议 |
|---|---|
| 数据库 | 轻量服务器可自建 MySQL,但生产环境推荐使用 腾讯云云数据库 RDS(高可用、备份方便) |
| 日志 | 集成 logback + 输出到文件;可接入腾讯云 CLS(日志服务)集中管理 |
| 监控 | 安装 Prometheus + Node Exporter,或直接用腾讯云「云监控」观察 CPU/内存/磁盘 |
| 备份 | 定期 tar 打包项目 + 数据库导出,存储至 COS 对象存储 |
| CI/CD | 结合 GitHub Actions / Jenkins 实现自动化构建与部署 |
需要我提供:
- 📦 完整的
systemd服务模板? - 🔐 如何配置多环境(dev/test/prod)的
application.yml? - 🚀 Docker 化部署方案(更轻量、易迁移)?
欢迎告诉我你的具体需求,我可以为你定制下一步操作指南 😊
云计算HECS