在阿里云轻量应用服务器上如何部署Spring Boot项目?

在阿里云轻量应用服务器(Lightweight Application Server)上部署 Spring Boot 项目,通常分为准备环境上传代码/包启动服务配置安全组四个核心步骤。以下是详细操作流程:


一、前置准备

  1. 登录阿里云控制台

    • 进入「轻量应用服务器」实例列表,选择目标实例并点击「远程连接」(推荐使用 VNC 或 SSH)。
    • 或使用本地终端通过 SSH 连接:
      ssh root@<你的公网IP>
  2. 确认系统基础环境
    轻量应用服务器默认预装 CentOS/Ubuntu/Debian 等主流系统,建议先更新软件源:

    # Ubuntu/Debian
    sudo apt update && sudo apt upgrade -y
    
    # CentOS/RHEL
    sudo yum update -y

二、安装 Java 环境

Spring Boot 依赖 JDK 8+(推荐 JDK 17 或 21):

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

# CentOS 安装 OpenJDK 17
sudo yum install java-17-openjdk-devel -y

# 验证安装
java -version
javac -version

✅ 提示:若需特定版本(如 JDK 8),可使用 apt install openjdk-8-jdk 或通过 SDKMAN 管理多版本。


三、部署 Spring Boot 项目

方案 A:直接上传 JAR 包(推荐,适用于已构建好的项目)

  1. 本地打包项目(确保使用 Maven/Gradle 构建):

    mvn clean package -DskipTests
    # 生成 target/your-app.jar
  2. 上传到服务器(使用 scp 或 SFTP):

    scp target/your-app.jar root@<你的公网IP>:/opt/spring-boot-app/

    💡 建议创建独立目录避免权限问题:

    mkdir -p /opt/spring-boot-app
    chmod 755 /opt/spring-boot-app
  3. 启动应用

    cd /opt/spring-boot-app
    nohup java -jar your-app.jar --server.port=8080 > app.log 2>&1 &
    • nohup 保证后台运行;
    • --server.port=8080 可自定义端口(默认 8080);
    • 日志输出到 app.log 便于排查。
  4. 查看进程与日志

    ps aux | grep your-app.jar
    tail -f app.log

方案 B:源码部署 + 在线编译(适合开发调试)

  1. 克隆项目到服务器:
    git clone https://github.com/your-repo/your-project.git /opt/spring-boot-app
    cd /opt/spring-boot-app
  2. 安装 Maven(若未预装):
    sudo apt install maven -y  # Ubuntu
    # 或 CentOS: sudo yum install maven -y
  3. 构建并启动:
    mvn clean package -DskipTests
    nohup java -jar target/your-app.jar > app.log 2>&1 &

四、配置安全组与防火墙(关键!)

否则外部无法访问应用:

  1. 阿里云控制台设置安全组规则

    • 进入实例详情页 → 「安全组」→ 编辑规则
    • 添加入方向规则:
      • 协议:TCP
      • 端口范围:8080(或你指定的端口)
      • 授权对象:0.0.0.0/0(生产环境建议限制为固定 IP)
  2. 检查服务器内部防火墙(如启用 firewalld/ufw):

    # Ubuntu (UFW)
    sudo ufw allow 8080/tcp
    sudo ufw enable
    
    # CentOS (Firewalld)
    sudo firewall-cmd --permanent --add-port=8080/tcp
    sudo firewall-cmd --reload

五、进阶优化建议

需求 方案
开机自启 创建 systemd 服务文件 /etc/systemd/system/spring-boot.service
域名绑定 在轻量服务器购买 SSL 证书 + Nginx 反向X_X(监听 80/443)
日志轮转 使用 logrotate 或集成 ELK 栈
健康检查 启用 Spring Actuator 端点 /actuator/health

示例:systemd 服务配置

# /etc/systemd/system/spring-boot.service
[Unit]
Description=My Spring Boot App
After=syslog.target network.target

[Service]
User=root
WorkingDirectory=/opt/spring-boot-app
ExecStart=/usr/bin/java -jar your-app.jar
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable spring-boot
sudo systemctl start spring-boot

六、验证部署成功

  • 浏览器访问:http://<你的公网IP>:8080
  • 本地 curl 测试:
    curl http://localhost:8080/actuator/health
  • 查看实时日志:
    tail -f /opt/spring-boot-app/app.log

注意事项

  • 生产环境务必修改默认密码、禁用 root 远程登录、使用密钥认证;
  • 数据库连接建议使用内网 RDS(轻量服务器可直接连同一账号下的 RDS,降低延迟);
  • 定期备份数据与应用代码(可用阿里云快照功能)。

需要我提供完整的 systemd 配置文件模板、Nginx 反向X_X配置,或 Docker 化部署方案吗?

云服务器