在腾讯云轻量应用服务器(Lighthouse)上部署 Spring Boot 项目,通常分为以下几个关键步骤。以下以 Ubuntu 22.04 为例(CentOS 类似),假设你已有一台轻量服务器并拥有 root 权限。
一、前置准备
-
安装 JDK
# 更新软件源 sudo apt update && sudo apt upgrade -y # 安装 OpenJDK 17(根据项目版本选择) sudo apt install openjdk-17-jdk -y # 验证安装 java -version -
安装 Maven(可选,若本地打包则跳过)
sudo apt install maven -y -
上传项目
- 方式一:使用
scp从本地上传scp -r /path/to/your-project user@<你的IP>:/home/user/ - 方式二:在服务器上直接拉取 Git 仓库
git clone https://github.com/your-repo/your-project.git
- 方式一:使用
二、构建与打包项目
进入项目目录:
cd your-project
情况 A:本地打包后上传
- 在本地执行:
mvn clean package -DskipTests - 将生成的
target/*.jar文件上传到服务器。
情况 B:在服务器上直接打包
mvn clean package -DskipTests
注意:确保服务器网络可访问 Maven 中央仓库;若国内网络慢,可配置阿里云镜像提速。
三、运行 Spring Boot 应用
方法 1:后台运行(推荐生产环境)
使用 nohup + 日志重定向
nohup java -jar target/your-app.jar --server.port=8080 > app.log 2>&1 &
- 查看日志:
tail -f app.log - 停止进程:先找到 PID(
ps aux | grep your-app.jar),再用kill <PID>
或使用 systemd(更规范)
- 创建服务文件:
sudo nano /etc/systemd/system/myapp.service -
填入以下内容(按需修改路径和参数):
[Unit] Description=My Spring Boot App After=syslog.target network.target [Service] User=root WorkingDirectory=/home/user/your-project ExecStart=/usr/bin/java -jar /home/user/your-project/target/your-app.jar --server.port=8080 SuccessExitStatus=143 Restart=always RestartSec=10 [Install] WantedBy=multi-user.target - 启用并启动服务:
sudo systemctl daemon-reload sudo systemctl enable myapp sudo systemctl start myapp sudo systemctl status myapp
四、开放防火墙端口
腾讯云轻量服务器默认有安全组限制,需手动放行端口(如 8080):
- 登录 腾讯云控制台
- 进入「轻量应用服务器」→ 选择你的实例 → 「安全组」
- 添加入方向规则:
- 协议类型:TCP
- 端口范围:8080(或你指定的端口)
- 授权对象:0.0.0.0/0(或指定 IP)
⚠️ 切勿仅依赖系统内防火墙(如
ufw),务必同步配置云厂商的安全组!
五、反向X_X(可选但推荐)
直接暴露 Java 端口不安全且不便管理。建议用 Nginx 做反向X_X:
安装 Nginx
sudo apt install nginx -y
配置反向X_X
sudo nano /etc/nginx/sites-available/myapp
内容示例:
server {
listen 80;
server_name your-domain.com; # 替换为你的域名或公网IP
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/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
同时确保安全组放行 80 端口。
六、进阶优化建议
| 需求 | 方案 |
|---|---|
| 多实例部署 | 使用 Docker + docker-compose |
| 自动重启失败 | systemd 的 Restart=always 已支持 |
| 日志轮转 | 配置 logrotate 或使用 journalctl -u myapp |
| HTTPS | 结合 Let’s Encrypt (certbot) + Nginx |
| 数据库连接 | 使用腾讯云 RDS MySQL/PG,避免自建 DB 增加运维成本 |
七、验证部署
浏览器访问:
- 若未配域名:
http://<你的公网IP>:8080 - 若配了 Nginx:
http://<你的域名>
检查接口是否正常返回 JSON/页面。
需要我提供:
- Docker 化部署完整脚本?
- 一键部署 Shell 脚本模板?
- 针对 CentOS 7 的版本适配?
欢迎告诉我你的具体需求,我可以进一步定制方案。
CLOUD云枢