将本地 Java 项目部署到腾讯云轻量应用服务器(Lighthouse)是一个系统性的过程,适合新手按步骤操作。以下是完整、清晰的部署指南:
✅ 一、前期准备
1. 购买并配置轻量应用服务器
- 登录 腾讯云控制台
- 进入「轻量应用服务器」→ 创建实例:
- 操作系统:推荐
Ubuntu 22.04或CentOS 7/8(本文以 Ubuntu 为例) - 配置:建议至少 2 核 CPU + 2GB 内存(可后续升级)
- 安全组:开通必要端口(见下文)
- 镜像:选择“基础镜像”即可(无需预装环境)
- 操作系统:推荐
💡 注意:创建后记录 公网 IP 和 初始密码(或 SSH 密钥)。
2. 本地项目准备
确保你的 Java 项目满足:
- 使用 Maven 或 Gradle 构建
- 打包为可执行 JAR(如通过
spring-boot:run或直接java -jar app.jar) - 配置文件已适配生产环境(如数据库地址改为服务器 IP、关闭调试模式等)
📌 推荐打包命令(Maven):
mvn clean package -DskipTests
# 生成 target/your-app.jar
✅ 二、上传项目到服务器
方法一:使用 SCP/SFTP(推荐新手)
在本地终端执行:
scp your-app.jar root@<服务器公网IP>:/opt/your-project/
首次连接会提示输入密码;若使用密钥,加
-i ~/.ssh/id_rsa参数。
方法二:Git 拉取(更灵活)
# 在服务器上克隆代码
git clone <你的 Git 仓库地址> /opt/your-project
cd /opt/your-project
# 安装依赖并打包
mvn clean package -DskipTests
✅ 三、在服务器上安装运行环境
1. 安装 JDK(以 OpenJDK 17 为例)
sudo apt update
sudo apt install openjdk-17-jdk -y
java -version # 验证安装成功
2. 安装必要的工具(可选但推荐)
sudo apt install vim curl wget unzip -y
✅ 四、配置防火墙与安全组
1. 服务器内部防火墙(UFW)
sudo ufw allow 8080/tcp # 替换为你的应用端口
sudo ufw enable
2. 腾讯云控制台「安全组」设置
- 进入实例 → 点击「网络」→ 「安全组」
- 添加规则:
- 协议:TCP
- 端口:
8080(或你应用的端口) - 来源:
0.0.0.0/0(生产环境建议限制为特定 IP)
⚠️ 务必同时放行:SSH (22) 和 应用端口!
✅ 五、启动 Java 应用
方式一:前台运行(仅测试用)
cd /opt/your-project
java -jar your-app.jar --server.port=8080
✅ 优点:实时看日志
❌ 缺点:关闭终端即停止
方式二:后台运行 + 日志重定向(推荐)
nohup java -jar your-app.jar --server.port=8080 > app.log 2>&1 &
tail -f app.log # 查看实时日志
方式三:使用 Systemd 管理(最稳定,生产推荐)
-
创建服务文件:
sudo nano /etc/systemd/system/myapp.service -
填入以下内容(按需修改路径和端口):
[Unit] Description=My Spring Boot App After=network.target
[Service]
User=root
WorkingDirectory=/opt/your-project
ExecStart=/usr/bin/java -jar your-app.jar –server.port=8080
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
3. 启用并启动服务:
```bash
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp
sudo systemctl status myapp # 查看状态
✅ 优势:开机自启、崩溃自动重启、统一管理
✅ 六、验证部署是否成功
- 浏览器访问:
http://<服务器公网IP>:8080 - 或使用 curl 测试:
curl http://<服务器公网IP>:8080/actuator/health - 检查日志:
sudo journalctl -u myapp -f
🔒 七、进阶建议(提升安全性与稳定性)
| 项目 | 建议 |
|---|---|
| 域名绑定 | 购买域名 + CNAME 指向服务器 IP,配合 Nginx 反向X_X |
| HTTPS | 使用 Let’s Encrypt 免费证书(Certbot) |
| 进程守护 | 已用 systemd,避免手动 & 后台 |
| 日志轮转 | 配置 logrotate 防止日志占满磁盘 |
| 数据库 | 建议用腾讯云云数据库 MySQL/CNDB,而非本地 DB |
| 备份 | 定期用 tar 备份 /opt/your-project 和数据目录 |
🆘 常见问题排查
| 问题 | 解决方案 |
|---|---|
| 无法访问端口 | 检查安全组 + UFW 是否放行;telnet IP 端口 测试连通性 |
| 应用启动失败 | 查看 app.log 或 journalctl -u myapp;确认 JDK 版本匹配 |
| 内存不足 OOM | 调整 JVM 参数:-Xms512m -Xmx1g |
| 中文乱码 | 启动时加 -Dfile.encoding=UTF-8 |
需要我为你提供:
- 一个完整的
systemd模板文件? - Nginx + HTTPS 一键部署脚本?
- Docker 化部署方案(更隔离、易迁移)?
欢迎告诉我你的具体技术栈(Spring Boot? 纯 Java?),我可以进一步定制步骤 😊
云小栈