在阿里云服务器上部署两套 Spring Boot 项目是完全可行的,以下是详细的部署步骤和建议:
✅ 前提条件
- 已有一台阿里云 ECS 实例(Linux 系统,如 CentOS、Ubuntu)
- Java 环境已安装(JDK 8 或以上)
- 两套 Spring Boot 项目已打包为 jar 文件
- 开放对应端口(如 8080、8081)
🛠️ 部署步骤
第一步:准备环境
1. 登录 ECS 服务器
ssh root@你的ECS公网IP
2. 安装 JDK(如果未安装)
# 查看是否已安装
java -version
# 如果没有,安装 OpenJDK
sudo yum install java-1.8.0-openjdk -y # CentOS/RedHat
# 或
sudo apt install openjdk-8-jdk -y # Ubuntu/Debian
第二步:上传两个 Spring Boot 项目
将两个打包好的 jar 文件上传到服务器,比如:
project-a.jar(运行在 8080 端口)project-b.jar(运行在 8081 端口)
使用 scp 命令上传:
scp project-a.jar root@你的IP:/root/app/
scp project-b.jar root@你的IP:/root/app/
或使用 FTP 工具(如 Xftp、WinSCP)上传。
第三步:配置不同端口(确保不冲突)
确保两个项目的 application.yml 或 application.properties 中使用的端口不同:
项目 A(application.yml):
server:
port: 8080
项目 B(application.yml):
server:
port: 8081
⚠️ 打包前确认端口不冲突!
第四步:启动两个项目(后台运行)
使用 nohup + & 让程序在后台运行。
启动项目 A:
cd /root/app
nohup java -jar project-a.jar > a.log 2>&1 &
启动项目 B:
nohup java -jar project-b.jar > b.log 2>&1 &
第五步:配置安全组(阿里云控制台)
登录 阿里云控制台 → 云服务器 ECS → 安全组 → 配置规则
添加入方向规则,允许以下端口:
- 8080(项目 A)
- 8081(项目 B)
- 80(可选,用于 Nginx 反向X_X)
协议类型:TCP
授权对象:0.0.0.0/0(或限制特定 IP)
第六步:验证服务是否正常
在浏览器访问:
- http://你的IP:8080
- http://你的IP:8081
如果能看到接口返回或页面,说明部署成功。
🔁 进阶优化建议
✅ 使用 Nginx 反向X_X(推荐)
避免暴露端口,统一通过 80/443 访问。
示例 Nginx 配置:
server {
listen 80;
server_name a.yourdomain.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 b.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
然后绑定域名即可。
✅ 使用 systemctl 管理服务(更稳定)
创建系统服务文件,例如 /etc/systemd/system/project-a.service:
[Unit]
Description=Project A Spring Boot App
After=syslog.target
[Service]
User=root
ExecStart=/usr/bin/java -jar /root/app/project-a.jar
Restart=always
[Install]
WantedBy=multi-user.target
启用并启动:
sudo systemctl daemon-reexec
sudo systemctl enable project-a.service
sudo systemctl start project-a
同理配置 project-b.service。
✅ 日志管理
定期清理日志,或使用 logback 配置日志滚动。
❌ 常见问题排查
| 问题 | 解决方案 |
|---|---|
| 无法访问端口 | 检查安全组和防火墙(firewall-cmd 或 ufw) |
| 端口被占用 | netstat -tuln | grep 8080 查看占用进程 |
| 内存不足 | 升级 ECS 规格或设置 JVM 参数 -Xms512m -Xmx1024m |
| 项目启动失败 | 查看日志 tail -f nohup.out 或 journalctl -u xxx |
✅ 总结
你可以在一台阿里云服务器上轻松部署多个 Spring Boot 项目,关键点如下:
- 确保每个项目使用不同端口
- 正确配置阿里云安全组
- 使用
nohup或systemctl后台运行 - 推荐使用 Nginx 做反向X_X和负载均衡
如果你提供具体需求(如是否需要域名、HTTPS、数据库等),我可以给出更定制化的部署方案。
CLOUD云计算