在阿里云服务器(如ECS)上部署多个 Spring Boot 应用,可以通过以下几种方式实现。下面是详细的步骤和建议:
🧩 一、前提条件
- 已有一台阿里云 ECS 实例(Linux 系统为主流,如 CentOS、Ubuntu)
- 安装了 JDK(Java Development Kit)
- 安装了 Tomcat(可选)
- 每个 Spring Boot 应用打包为独立的
.jar文件 - 每个应用使用不同的端口(避免冲突)
📦 二、部署方式
✅ 方法一:多个 Spring Boot jar 包分别运行(推荐)
步骤如下:
-
上传多个 Spring Boot jar 文件到服务器
可以通过 FTP、SCP、rsync 或者直接使用
git clone到服务器。 -
配置每个 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 & -
赋予执行权限并运行
chmod +x app1.sh app2.sh ./app1.sh ./app2.sh -
检查是否运行成功
ps -ef | grep java tail -f app1.log -
设置开机自启(可选)
将启动命令添加到
/etc/rc.d/rc.local中:/path/to/app1.sh /path/to/app2.sh -
配置防火墙放行对应端口
- 登录阿里云控制台 → 安全组 → 添加入方向规则
- 放行端口: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 部署多个容器(高级推荐)
步骤如下:
-
编写 Dockerfile 构建镜像(每个应用一个)
FROM openjdk:8-jdk-alpine COPY app1.jar app.jar ENTRYPOINT ["java", "-jar", "app.jar"] -
构建镜像
docker build -t app1 . docker build -t app2 . -
启动容器并映射不同端口
docker run -d -p 8080:8080 --name springboot_app1 app1 docker run -d -p 8081:8081 --name springboot_app2 app2 -
配置 Nginx 反向X_X(可选)
🔐 三、安全建议
- 使用阿里云安全组限制访问来源 IP
- 每个服务使用非 root 用户运行
- 使用防火墙(iptables/firewalld)做二次防护
- 日志监控(logrotate + ELK 可选)
📊 四、资源管理建议
- 内存充足情况下,多个 Spring Boot 应用可以在同一台服务器上共存
- 若资源紧张,考虑使用轻量级 JVM 参数优化内存占用
- 推荐使用
screen或tmux来管理多个后台进程 - 或使用进程守护工具如
supervisord
📌 总结
| 方法 | 优点 | 缺点 |
|---|---|---|
| 多个 jar 同时运行 | 简单易行 | 资源占用高,维护麻烦 |
| Nginx 反代 | 统一入口,便于管理 | 需要额外配置 |
| Docker 容器化 | 隔离性好,易于扩展 | 学习成本略高 |
如果你需要我帮你生成完整的部署脚本或配置文件,也可以告诉我你的具体需求 😎
云计算导航