一个阿里云服务器如何部署多个springboot?

在阿里云服务器(如ECS)上部署多个 Spring Boot 应用,可以通过以下几种方式实现。下面是详细的步骤和建议:


🧩 一、前提条件

  • 已有一台阿里云 ECS 实例(Linux 系统为主流,如 CentOS、Ubuntu)
  • 安装了 JDK(Java Development Kit)
  • 安装了 Tomcat(可选)
  • 每个 Spring Boot 应用打包为独立的 .jar 文件
  • 每个应用使用不同的端口(避免冲突)

📦 二、部署方式

✅ 方法一:多个 Spring Boot jar 包分别运行(推荐)

步骤如下:

  1. 上传多个 Spring Boot jar 文件到服务器

    可以通过 FTP、SCP、rsync 或者直接使用 git clone 到服务器。

  2. 配置每个 Spring Boot 应用的启动脚本

    比如你有两个项目:

    • app1.jar 使用端口 8080
    • app2.jar 使用端口 8081

    创建两个启动脚本,例如:

    # app1.sh
    nohup java -jar app1.jar --server.port=8080 > app1.log 2>&1 &
    # app2.sh
    nohup java -jar app2.jar --server.port=8081 > app2.log 2>&1 &
  3. 赋予执行权限并运行

    chmod +x app1.sh app2.sh
    ./app1.sh
    ./app2.sh
  4. 检查是否运行成功

    ps -ef | grep java
    tail -f app1.log
  5. 设置开机自启(可选)

    将启动命令添加到 /etc/rc.d/rc.local 中:

    /path/to/app1.sh
    /path/to/app2.sh
  6. 配置防火墙放行对应端口

    • 登录阿里云控制台 → 安全组 → 添加入方向规则
    • 放行端口:8080, 8081 等

✅ 方法二:使用 Nginx 做反向X_X(推荐用于域名访问)

如果你希望多个 Spring Boot 应用通过同一个 IP 不同域名或路径访问,可以使用 Nginx。

示例配置:

server {
    listen 80;
    server_name app1.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

server {
    listen 80;
    server_name app2.example.com;

    location / {
        proxy_pass http://127.0.0.1:8081;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

这样你可以通过不同域名访问不同 Spring Boot 应用。


✅ 方法三:使用 Docker 部署多个容器(高级推荐)

步骤如下:

  1. 编写 Dockerfile 构建镜像(每个应用一个)

    FROM openjdk:8-jdk-alpine
    COPY app1.jar app.jar
    ENTRYPOINT ["java", "-jar", "app.jar"]
  2. 构建镜像

    docker build -t app1 .
    docker build -t app2 .
  3. 启动容器并映射不同端口

    docker run -d -p 8080:8080 --name springboot_app1 app1
    docker run -d -p 8081:8081 --name springboot_app2 app2
  4. 配置 Nginx 反向X_X(可选)


🔐 三、安全建议

  • 使用阿里云安全组限制访问来源 IP
  • 每个服务使用非 root 用户运行
  • 使用防火墙(iptables/firewalld)做二次防护
  • 日志监控(logrotate + ELK 可选)

📊 四、资源管理建议

  • 内存充足情况下,多个 Spring Boot 应用可以在同一台服务器上共存
  • 若资源紧张,考虑使用轻量级 JVM 参数优化内存占用
  • 推荐使用 screen 或 tmux 来管理多个后台进程
  • 或使用进程守护工具如 supervisord

📌 总结

方法 优点 缺点
多个 jar 同时运行 简单易行 资源占用高,维护麻烦
Nginx 反代 统一入口,便于管理 需要额外配置
Docker 容器化 隔离性好,易于扩展 学习成本略高

如果你需要我帮你生成完整的部署脚本或配置文件,也可以告诉我你的具体需求 😎

未经允许不得转载:云计算导航 » 一个阿里云服务器如何部署多个springboot?