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

在一个阿里云服务器上部署多个 Spring Boot 项目是非常常见的需求。你可以根据不同的方式来实现,下面是一个详细的部署方案:


🧩 前提条件

  • 阿里云服务器(ECS)已准备好,系统常见为 CentOS、Ubuntu 等。
  • 已安装 Java 环境(JDK 8 或以上)。
  • 每个 Spring Boot 应用都打包成可运行的 jar 包或 war 包。

✅ 方法一:使用不同端口运行多个 Spring Boot Jar 包

这是最简单直接的方式。

步骤如下:

  1. 上传多个 Spring Boot 项目 jar 文件

    • 例如:
      app1.jar
      app2.jar
  2. 配置每个项目的 application.properties 中的 server.port

    • app1 使用 8080:
      server.port=8080
    • app2 使用 8081:
      server.port=8081
  3. 在服务器中分别启动 jar 文件

    nohup java -jar app1.jar > app1.log 2>&1 &
    nohup java -jar app2.jar > app2.log 2>&1 &
  4. 开放安全组端口

    • 登录阿里云控制台,进入 ECS 实例的安全组设置:
      • 添加入方向规则,允许 TCP:8080, TCP:8081 等端口。
  5. 访问测试

    • 通过公网 IP + 端口访问:
      http://<你的IP>:8080
      http://<你的IP>:8081

✅ 方法二:使用 Nginx 反向X_X(推荐)

适用于需要统一入口(域名)、负载均衡、HTTPS、路径区分等场景。

步骤如下:

  1. 安装 Nginx

    • CentOS:
      sudo yum install nginx
    • Ubuntu:
      sudo apt update && sudo apt install nginx
  2. 配置 Nginx 反向X_X
    编辑 /etc/nginx/conf.d/multi.conf

    server {
       listen 80;
    
       location /app1/ {
           proxy_pass http://localhost:8080/;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
       }
    
       location /app2/ {
           proxy_pass http://localhost:8081/;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
       }
    }
  3. 重启 Nginx

    sudo systemctl restart nginx
  4. 访问方式

    http://<你的IP>/app1/
    http://<你的IP>/app2/

✅ 方法三:使用 Tomcat 部署多个 WAR 包(适合传统企业项目)

  1. 安装 Tomcat。
  2. 将多个 Spring Boot 项目打包为 WAR 文件。
  3. 放入 webapps/ 目录下,Tomcat 会自动解压并部署。
  4. 访问时通过上下文路径区分:
    http://<IP>:8080/app1
    http://<IP>:8080/app2

✅ 方法四:使用 Docker 容器化部署(高级推荐)

Docker 是目前最流行的方式来管理多个应用部署。

示例:docker-compose 启动多个 Spring Boot 应用

version: '3'
services:
  app1:
    image: yourname/app1
    ports:
      - "8080:8080"
    container_name: springboot_app1

  app2:
    image: yourname/app2
    ports:
      - "8081:8081"
    container_name: springboot_app2

构建并启动:

docker-compose up -d

📌 小贴士

  • 日志管理:建议每个服务单独输出日志文件,便于排查问题。
  • 进程守护:可以使用 systemdsupervisord 来守护 Java 进程。
  • 资源限制:注意服务器 CPU、内存是否足够支持多个应用并发运行。
  • 防火墙设置:确保安全组和系统防火墙都开放了相应端口。

✅ 总结

方式 特点 适用场景
多端口直接运行 简单快速 测试环境、小项目
Nginx 反向X_X 统一入口,方便维护 生产环境、需域名访问
Tomcat 多 WAR 传统部署方式 旧系统迁移
Docker 容器化 高度隔离、易于扩展 微服务架构、多项目部署

如果你告诉我你的具体需求(如是否需要域名访问、是否使用 HTTPS、Spring Boot 打包方式等),我可以给你定制一个更合适的部署方案。

未经允许不得转载:CLOUD技术博 » 一个阿里云服务器如何部署多个springboot?