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

在腾讯云轻量应用服务器(Lighthouse)上部署 Spring Boot 项目,通常采用 Java + Nginx + 反向X_X 的经典架构。这种方式既保证了安全性(不直接暴露 Java 进程端口),又提供了静态资源提速和负载均衡能力。

以下是完整的部署步骤指南:

第一步:环境准备与安装

首先登录到轻量服务器的命令行界面(SSH),执行以下操作安装基础环境。

1. 更新系统并安装 JDK

Spring Boot 依赖 Java 运行环境。推荐使用 OpenJDK 17 或 8(根据你项目的版本选择)。

# 更新软件源
sudo apt update && sudo apt upgrade -y

# 安装 OpenJDK 17 (如果项目需要 JDK 8,可改为 openjdk-8-jdk)
sudo apt install openjdk-17-jdk -y

# 验证安装
java -version

2. 安装 Maven (可选,用于编译)

如果你需要在服务器上打包项目,或者项目依赖本地构建,建议安装 Maven。如果是在本地打包好 .jar 文件上传的,此步可跳过。

sudo apt install maven -y

3. 安装 Nginx

Nginx 将作为反向X_X,将用户的 HTTP 请求转发给 Spring Boot 应用的内部端口(如 8080)。

sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

第二步:上传项目

将本地打包好的 Spring Boot Jar 包上传到服务器。你可以使用 scp 命令、FTP 工具(如 FileZilla)或腾讯云的“文件管理”功能。

假设你的项目文件名为 my-app.jar,上传到 /opt/springboot/ 目录:

# 创建目录
mkdir -p /opt/springboot/

# 从本地上传 (示例命令,请替换为你的实际路径)
# scp -r your-local-file.jar root@your-server-ip:/opt/springboot/

第三步:配置防火墙与安全组

这是最容易被忽略的一步。你需要确保服务器的外部端口(通常是 80)是开放的。

  1. 腾讯云控制台设置:

    • 登录腾讯云 -> 轻量应用服务器 -> 点击实例 -> 安全组。
    • 添加入站规则:允许 TCP 协议,端口 80 和 443(HTTPS)。
    • 注意:不要开放 8080 等 Java 内部端口给公网,只通过 Nginx 访问即可。
  2. 服务器内部防火墙:

    # 如果开启了 ufw,放行 80
    sudo ufw allow 80/tcp

第四步:配置 Nginx 反向X_X

编辑 Nginx 配置文件,告诉它如何转发流量。

sudo nano /etc/nginx/sites-available/default

删除原有内容,填入以下配置(假设你的 Spring Boot 监听的是 8080 端口):

server {
    listen 80;
    server_name your-domain.com; # 如果有域名填域名,没有则填 IP 或 localhost

    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;
    }
}

保存退出 (Ctrl+O, Enter, Ctrl+X),然后重载 Nginx:

sudo nginx -t          # 检查配置语法是否正确
sudo systemctl reload nginx

第五步:启动 Spring Boot 项目

为了让项目后台常驻运行,建议使用 nohup 命令,或者更推荐的方式是使用 systemd 服务管理。这里推荐 Systemd 方式,因为它能实现开机自启、崩溃自动重启等功能。

1. 创建服务文件

sudo nano /etc/systemd/system/my-spring-boot.service

写入以下内容(请根据实际情况修改路径和端口):

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

[Service]
Type=simple
User=root
ExecStart=/usr/bin/java -jar /opt/springboot/my-app.jar --server.port=8080
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

2. 启动并启用服务

# 重新加载 systemd 配置
sudo systemctl daemon-reload

# 启动服务
sudo systemctl start my-spring-boot

# 设置开机自启
sudo systemctl enable my-spring-boot

# 查看状态
sudo systemctl status my-spring-boot

提示:如果需要修改 JVM 内存参数(例如分配 512MB 内存),可以在 ExecStart 中增加 -Xms512m -Xmx512m。


第六步:验证部署

  1. 浏览器访问:
    在浏览器输入 http://<你的服务器 IP>。如果能看到你 Spring Boot 返回的页面(或默认的 Welcome 页),说明部署成功。

  2. 查看日志:
    如果遇到问题,可以实时查看日志:

    journalctl -u my-spring-boot -f

    或者直接查看 jar 包输出的日志文件(如果你在代码里配置了 logging.file.path)。

常见问题排查

  • 无法连接 8080 端口:检查 Spring Boot 配置文件 application.properties 或 application.yml,确保没有写死 server.address=127.0.0.1,应留空或改为 0.0.0.0。
  • Nginx 报 502 Bad Gateway:说明 Nginx 连不上后端 Java 进程。检查 Java 服务是否启动 (systemctl status my-spring-boot) 以及端口是否监听正确 (netstat -tlnp | grep java)。
  • 内存溢出:轻量服务器内存较小(如 1G/2G),务必在启动参数中限制 JVM 堆内存大小,防止 OOM 导致服务被杀。

按照以上步骤,你就可以在腾讯云轻量服务器上稳定运行 Spring Boot 项目了。

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