在腾讯云轻量应用服务器(Lighthouse)上部署 Java 程序(如 Spring Boot Web 应用)是一个常见且高效的选择。以下是详细、可落地的完整部署流程(以 Ubuntu 22.04 系统为例,也适用于 CentOS/Debian),涵盖环境准备、程序打包、服务化、反向X_X与安全配置:
✅ 一、前期准备
1. 创建轻量服务器
- 地域:选择离用户近的地域(如上海、广州)
- 镜像:推荐 Ubuntu 22.04 LTS(稳定、社区支持好)或 CentOS 7/8(注意 CentOS 8 已停更,建议选 Stream 或 Ubuntu)
- 规格:Java 应用建议至少 2GB 内存 + 1 核 CPU(Spring Boot 默认堆内存约 512MB~1GB)
- 注意开放端口:
22(SSH,默认已开)8080(Java 应用默认端口,临时用于测试)80/443(后续 Nginx 反代用,需在控制台【防火墙】中手动添加)
🔐 重要:腾讯云轻量服务器默认关闭所有非 22 端口!务必登录 [腾讯云控制台 → 轻量应用服务器 → 实例详情 → 防火墙] 添加规则(如
8080/tcp,80/tcp,443/tcp)。
✅ 二、基础环境安装(SSH 登录后执行)
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装 OpenJDK 17(推荐 LTS 版本,Spring Boot 3.x 要求 JDK 17+)
sudo apt install openjdk-17-jdk -y
java -version # 验证输出应含 "17.x"
# 设置 JAVA_HOME(写入全局环境变量)
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' | sudo tee -a /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' | sudo tee -a /etc/profile
source /etc/profile
💡 提示:若需 JDK 8/11(适配 Spring Boot 2.x),可用
sudo apt install openjdk-11-jdk,并调整JAVA_HOME路径。
✅ 三、上传并运行 Java 程序
方式 1:上传 JAR 包(推荐,适合 Spring Boot 打包成可执行 jar)
-
本地使用 Maven 构建:
<!-- pom.xml 确保有 spring-boot-maven-plugin --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>执行:
mvn clean package -DskipTests→ 得到target/your-app.jar -
上传 JAR 到服务器(任选其一):
- ✅ 推荐:SCP 命令(Mac/Linux)
scp -P 22 your-app.jar ubuntu@<你的公网IP>:/home/ubuntu/ - 🌐 Windows 用户:用 WinSCP / Termius / MobaXterm 图形化上传至
/home/ubuntu/
- ✅ 推荐:SCP 命令(Mac/Linux)
-
创建部署目录并运行:
mkdir -p /opt/myapp mv /home/ubuntu/your-app.jar /opt/myapp/app.jar # 后台启动(带日志 & 自动重启) nohup java -jar -Xms512m -Xmx1g /opt/myapp/app.jar --server.port=8080 > /opt/myapp/app.log 2>&1 & # 查看是否启动成功 tail -f /opt/myapp/app.log # 等待出现 "Started Application in X seconds"
⚠️ 注意:
nohup方式适合快速验证,生产环境必须使用 systemd 服务管理(见下一步)。
✅ 四、【生产必备】配置 systemd 服务(优雅启停 + 开机自启)
创建服务文件:
sudo nano /etc/systemd/system/myapp.service
内容如下(请按实际路径修改):
[Unit]
Description=My Spring Boot Application
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/java -Xms512m -Xmx1g -jar /opt/myapp/app.jar --server.port=8080
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=myapp
[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl enable myapp.service # 开机自启
sudo systemctl start myapp.service # 启动
sudo systemctl status myapp.service # 查看状态(✅ active (running))
sudo journalctl -u myapp -f # 实时查看日志
✅ 五、配置 Nginx 反向X_X(暴露 80/443,隐藏端口 & 支持 HTTPS)
-
安装 Nginx:
sudo apt install nginx -y sudo systemctl enable nginx && sudo systemctl start nginx -
配置反向X_X(替换默认站点):
sudo nano /etc/nginx/sites-available/myapp写入:
server { listen 80; server_name your-domain.com; # 替换为你的域名(或直接用 IP 测试) location / { proxy_pass http://127.0.0.1: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 -sf /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx -
【可选但强烈推荐】配置 HTTPS(免费 SSL):
- 安装 Certbot:
sudo apt install certbot python3-certbot-nginx -y - 申请证书(确保域名已解析到服务器 IP):
sudo certbot --nginx -d your-domain.comCertbot 会自动更新 Nginx 配置并启用 HTTPS(自动重定向 HTTP→HTTPS)。
- 安装 Certbot:
✅ 六、安全加固(关键!)
| 项目 | 操作 |
|---|---|
| 🔒 关闭 root 密码登录 | sudo passwd -l root + 使用密钥登录(控制台可重置密钥) |
| 🛡️ 禁用未使用端口 | 在腾讯云防火墙中仅开放必需端口(80, 443, 22) |
| 🧼 清理历史命令 | history -c && history -w |
| 📦 定期更新系统 | sudo apt update && sudo apt upgrade -y && sudo reboot(每月) |
✅ 七、验证访问
- 浏览器访问:
http://<你的服务器公网IP>或https://your-domain.com - 查看 Nginx 访问日志:
sudo tail -f /var/log/nginx/access.log - 查看应用日志:
sudo journalctl -u myapp -f
❌ 常见问题速查
| 现象 | 解决方案 |
|---|---|
Connection refused 访问 8080 |
检查 systemctl status myapp;确认防火墙放行 8080;检查 netstat -tuln | grep 8080 |
| Nginx 502 Bad Gateway | 检查 proxy_pass 地址是否正确;确认 Java 进程正在监听 127.0.0.1:8080(非 0.0.0.0:8080 或 localhost) |
| 日志中文乱码 | 在 ExecStart 中添加 JVM 参数:-Dfile.encoding=UTF-8 |
| 内存不足崩溃 | 调整 -Xms/-Xmx;或升级服务器配置;检查是否有内存泄漏 |
✅ 进阶建议(可选)
- 📦 使用 Docker 封装(更标准化):构建 Docker 镜像 +
docker-compose.yml管理; - 🔄 CI/CD:GitHub Actions / Coding DevOps 自动构建上传 + 重启服务;
- 📊 监控:集成 Prometheus + Grafana 监控 JVM 指标;
- 🌐 多实例:配合腾讯云 CLB(负载均衡)实现高可用。
需要我为你生成:
- ✅ 完整的
myapp.service示例文件 - ✅ Nginx HTTPS 完整配置(含 HTTP 强制跳转)
- ✅ Dockerfile + docker-compose.yml 模板
- ✅ Spring Boot 生产配置建议(
application-prod.yml)
欢迎随时告诉我 👇 我可立即为你定制!
祝你部署顺利,丝滑上线!🚀
CLOUD云