如何在腾讯云轻量服务器上部署Spring Boot项目?

在腾讯云轻量应用服务器(Lighthouse)上部署 Spring Boot 项目,通常分为以下几个关键步骤。以下以 Ubuntu 22.04 为例(CentOS 类似),假设你已有一台轻量服务器并拥有 root 权限。


一、前置准备

  1. 安装 JDK

    # 更新软件源
    sudo apt update && sudo apt upgrade -y
    
    # 安装 OpenJDK 17(根据项目版本选择)
    sudo apt install openjdk-17-jdk -y
    
    # 验证安装
    java -version
  2. 安装 Maven(可选,若本地打包则跳过)

    sudo apt install maven -y
  3. 上传项目

    • 方式一:使用 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(更规范)

  1. 创建服务文件:
    sudo nano /etc/systemd/system/myapp.service
  2. 填入以下内容(按需修改路径和参数):

    [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
  3. 启用并启动服务:
    sudo systemctl daemon-reload
    sudo systemctl enable myapp
    sudo systemctl start myapp
    sudo systemctl status myapp

四、开放防火墙端口

腾讯云轻量服务器默认有安全组限制,需手动放行端口(如 8080):

  1. 登录 腾讯云控制台
  2. 进入「轻量应用服务器」→ 选择你的实例 → 「安全组」
  3. 添加入方向规则:
    • 协议类型: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云枢 » 如何在腾讯云轻量服务器上部署Spring Boot项目?