云服务器ECS部署多个springBoot?

在阿里云ECS(弹性计算服务)上部署多个 Spring Boot 项目,是一个常见的需求。你可以通过多种方式实现,比如使用不同的端口、Nginx 反向、Docker 容器等。下面是几种常见方案的详细说明:


✅ 一、使用不同端口部署多个 Spring Boot 应用

1. 准备工作:

  • 已有一台 ECS 实例(Linux 系统,如 CentOS、Ubuntu)
  • Java 环境已安装(建议 JDK 8 或以上)
  • 每个 Spring Boot 项目打包为 .jar 文件

2. 启动多个 Spring Boot 应用

每个 Spring Boot 应用默认启动在 8080 端口,可以通过修改配置文件来指定不同的端口。

示例:

假设你有两个项目:

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

application.properties 中修改:

# app1.properties
server.port=8081
# app2.properties
server.port=8082

然后分别运行:

java -jar app1.jar &
java -jar app2.jar &

注意:& 表示后台运行,也可以使用 nohup 配合日志输出。

3. 验证访问

  • 访问 http://:8081
  • 访问 http://:8082

✅ 二、使用 Nginx 做反向(推荐)

如果你希望统一使用 80/443 端口,并通过域名或路径区分多个应用,可以使用 Nginx。

1. 安装 Nginx

# Ubuntu
sudo apt update && sudo apt install nginx

# CentOS
sudo yum install nginx

2. 配置 Nginx(例如 /etc/nginx/conf.d/apps.conf

server {
    listen 80;

    # 第一个应用
    location /app1/ {
        proxy_pass http://localhost:8081/;
    }

    # 第二个应用
    location /app2/ {
        proxy_pass http://localhost:8082/;
    }
}

注意:Spring Boot 应用中也要配置对应的 context-path(如 /app1),否则路径不匹配。

3. 重启 Nginx

sudo systemctl restart nginx

4. 访问方式

  • http:///app1/
  • http:///app2/

✅ 三、使用 Docker 容器部署(推荐)

使用 Docker 可以更方便地隔离环境、管理多个应用。

1. 构建镜像(每个 Spring Boot 项目)

# Dockerfile
FROM openjdk:8-jdk-alpine
COPY *.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]

构建并运行容器:

docker build -t springboot-app1 .
docker run -d -p 8081:8080 springboot-app1

docker build -t springboot-app2 .
docker run -d -p 8082:8080 springboot-app2

2. 配置 Nginx 反向(同上)


✅ 四、其他注意事项

1. 安全组设置

确保 ECS 的安全组开放了你需要使用的端口(如 80、8081、8082)。

2. 日志和进程管理

  • 推荐使用 systemdsupervisord 来管理 Java 进程。
  • 或者使用 Docker Compose 统一管理多个容器。

3. 资源监控

注意 CPU 和内存使用情况,避免资源不足导致 OOM。


✅ 总结对比

方式 优点 缺点
不同端口直接运行 简单快速 管理不便,容易冲突
Nginx 反向 统一入口,易于维护 需要配置 Nginx
Docker 容器化 环境隔离好,便于扩展 初期学习成本略高

如果你需要我帮你写具体的脚本、配置文件或者部署流程,请告诉我你的系统版本、Java 版本以及 Spring Boot 项目的结构,我可以提供定制化帮助。

未经允许不得转载:CLOUD技术博 » 云服务器ECS部署多个springBoot?