腾讯云轻量级服务器Ubuntu部署springboot项目?

在腾讯云轻量应用服务器(Lighthouse)上部署 Spring Boot 项目,通常采用 JDK + Maven/Gradle + Nginx (可选) + Systemd 的标准流程。以下是基于 Ubuntu 系统的详细操作步骤:

1. 环境准备与安装

首先通过 SSH 登录到你的服务器(推荐使用 root 或具有 sudo 权限的用户)。

1.1 更新系统并安装基础工具

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git wget unzip

1.2 安装 Java (JDK)

Spring Boot 依赖 Java 运行环境。建议安装 JDK 17 或 JDK 8(根据你的项目版本选择)。这里以 JDK 17 为例:

# 安装 OpenJDK 17
sudo apt install -y openjdk-17-jdk

# 验证安装
java -version

如果提示找不到命令,可能需要配置环境变量:

echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' | sudo tee -a ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' | sudo tee -a ~/.bashrc
source ~/.bashrc

1.3 安装 Maven (可选,用于本地打包)

如果你打算在本地 IDE 打包好 jar 包上传到服务器,可以跳过此步。如果需要直接在服务器构建,则安装 Maven:

sudo apt install -y maven
mvn -v

2. 上传项目代码

将你的 Spring Boot 项目打包成 .jar 文件(确保执行了 mvn clean packagegradle bootJar),然后上传到服务器。

方法 A:使用 SCP 命令(推荐)

在本地电脑终端执行:

# 语法:scp -P <端口> <本地jar路径> root@<服务器IP>:<目标目录>
scp -P 22 target/your-app.jar root@<你的公网IP>:/opt/spring-boot-app/

注意:如果使用了非标准 SSH 端口,请修改 -P 参数。

方法 B:使用 SFTP 客户端

使用 FileZilla、Xftp 等工具连接服务器,将 jar 包拖入 /opt/spring-boot-app/ 目录。


3. 创建运行脚本与启动服务

为了方便管理和自动重启,我们创建一个简单的 Shell 脚本并使用 systemd 管理进程。

3.1 创建项目目录

sudo mkdir -p /opt/spring-boot-app/logs
cd /opt/spring-boot-app

3.2 编写启动脚本 (start.sh)

sudo nano start.sh

粘贴以下内容(根据实际情况修改 Jar 包名称和端口):

#!/bin/bash
APP_NAME="your-app.jar"
LOG_FILE="/opt/spring-boot-app/logs/app.log"
PID_FILE="/opt/spring-boot-app/logs/app.pid"

# 检查是否已运行
if [ -f "$PID_FILE" ]; then
    PID=$(cat $PID_FILE)
    if ps -p $PID > /dev/null; then
        echo "Application is already running with PID: $PID"
        exit 0
    fi
fi

# 启动应用
nohup java -jar $APP_NAME --server.port=8080 > $LOG_FILE 2>&1 &
echo $! > $PID_FILE
echo "Application started with PID: $(cat $PID_FILE)"

保存退出(按 Ctrl+O, Enter, Ctrl+X)。

赋予执行权限:

sudo chmod +x start.sh

3.3 配置 Systemd 服务(推荐方式)

虽然可以用脚本直接跑,但使用 systemd 可以让服务随系统启动并方便管理。

sudo nano /etc/systemd/system/my-springboot.service

粘贴以下内容:

[Unit]
Description=My Spring Boot Application
After=syslog.target network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/spring-boot-app
ExecStart=/usr/bin/java -jar /opt/spring-boot-app/your-app.jar --server.port=8080
SuccessExitStatus=143
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

注意:将 your-app.jar 替换为你实际的 jar 包文件名。

保存后,重新加载配置并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable my-springboot
sudo systemctl start my-springboot

3.4 验证状态

# 查看服务状态
sudo systemctl status my-springboot

# 查看日志(实时)
sudo journalctl -u my-springboot -f

4. 配置防火墙与安全组

这是最关键的一步,否则外部无法访问。

4.1 服务器内部防火墙 (UFW)

如果开启了 UFW,放行 8080 端口:

sudo ufw allow 8080/tcp
sudo ufw enable # 如果尚未开启

4.2 腾讯云控制台安全组(必须操作)

  1. 登录 腾讯云控制台
  2. 进入 轻量应用服务器 -> 点击你的实例 -> 安全组
  3. 点击 规则列表 -> 添加规则
  4. 配置如下:
    • 类型:自定义
    • 协议端口:TCP 8080 (或者你指定的端口)
    • 来源地址:0.0.0.0/0 (允许所有 IP,生产环境建议限制为特定 IP)
    • 策略:允许
  5. 保存规则。

5. 访问测试

现在你可以在本地浏览器访问:
http://<你的服务器公网IP>:8080

如果看到 Spring Boot 的欢迎页或 API 响应,说明部署成功。


💡 进阶优化建议

  1. 反向X_X (Nginx)
    如果你的项目是 Web 前端 + 后端,或者希望隐藏端口号(直接使用 80/443),建议安装 Nginx 做反向X_X。

    sudo apt install nginx

    配置 /etc/nginx/sites-available/default 将请求转发到 localhost:8080

  2. 数据库连接
    如果 Spring Boot 连接的是云数据库(如 MySQL),请确保:

    • 数据库的安全组也放行了服务器的内网 IP。
    • Spring Boot 配置文件 (application.yml) 中的 URL 使用内网地址(例如 jdbc:mysql://mysql-xxxx.cjxxxxxxxx.r...:3306/dbname),这样速度更快且更安全。
  3. 日志轮转
    生产环境中建议使用 logbacklog4j2 配置日志切割,避免日志文件无限增长占满磁盘。

通过以上步骤,你的 Spring Boot 项目就已经稳定地运行在腾讯云轻量服务器上了。

未经允许不得转载:CLOUD技术博 » 腾讯云轻量级服务器Ubuntu部署springboot项目?