在阿里云服务器上部署两套 Spring Boot 项目是完全可行的,以下是详细的步骤和建议,帮助你顺利完成部署。
✅ 前提条件
- 一台阿里云 ECS 实例(Linux 系统,如 CentOS、Ubuntu)
- 已安装 Java 环境(JDK 8 或以上)
- 已准备好两个 Spring Boot 项目的 可执行 JAR 包
- 可选:Nginx(用于反向X_X或负载均衡)
🚀 部署方案一:通过不同端口运行两个项目(推荐新手)
步骤 1:上传 JAR 包到服务器
使用 scp 或 FTP 工具将两个 JAR 包上传到服务器:
scp springboot-app1.jar root@your-server-ip:/root/apps/
scp springboot-app2.jar root@your-server-ip:/root/apps/
创建目录:
mkdir -p /root/apps
cd /root/apps
步骤 2:配置不同端口
确保两个 Spring Boot 项目的 application.yml 中使用的端口不冲突:
- app1:
server.port=8080 - app2:
server.port=8081
如果是打包后的 JAR,可以在启动时指定端口:
java -jar springboot-app1.jar --server.port=8080
java -jar springboot-app2.jar --server.port=8081
步骤 3:后台运行项目(使用 nohup)
# 启动第一个项目
nohup java -jar springboot-app1.jar --server.port=8080 > app1.log 2>&1 &
# 启动第二个项目
nohup java -jar springboot-app2.jar --server.port=8081 > app2.log 2>&1 &
使用
&让进程在后台运行,nohup防止终端关闭后中断。
步骤 4:查看进程是否运行
ps aux | grep java
步骤 5:开放安全组端口
登录阿里云控制台:
- 进入 ECS 实例管理
- 找到实例,点击 安全组
- 添加安全组规则,放行端口:
- 8080
- 8081
- (或根据实际需要开放)
然后就可以通过以下方式访问:
- http://your-server-ip:8080
- http://your-server-ip:8081
🌐 部署方案二:使用 Nginx 反向X_X(更专业,支持域名)
优点:
- 可以用域名访问不同项目
- 统一使用 80/443 端口
- 支持 HTTPS
步骤 1:安装 Nginx
# Ubuntu
sudo apt update
sudo apt install nginx -y
# CentOS
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
步骤 2:配置 Nginx 虚拟主机
编辑配置文件:
sudo vim /etc/nginx/conf.d/springboot.conf
内容如下:
server {
listen 80;
server_name app1.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name app2.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
步骤 3:重启 Nginx
sudo nginx -t # 测试配置
sudo systemctl reload nginx
步骤 4:域名解析
将 app1.yourdomain.com 和 app2.yourdomain.com 解析到你的服务器公网 IP。
🔐 安全建议
-
防火墙设置:只开放必要的端口(如 80, 443, 22)
-
使用 systemd 管理服务(推荐)
创建服务文件
/etc/systemd/system/app1.service:[Unit] Description=Spring Boot App1 After=network.target [Service] User=root ExecStart=/usr/bin/java -jar /root/apps/springboot-app1.jar --server.port=8080 SuccessExitStatus=143 Restart=always [Install] WantedBy=multi-user.target启用服务:
sudo systemctl daemon-reload sudo systemctl start app1 sudo systemctl enable app1 -
日志监控:定期查看日志,排查异常
✅ 总结
| 方案 | 适用场景 |
|---|---|
| 不同端口直接访问 | 快速测试、开发环境 |
| Nginx + 域名 | 生产环境、正式上线 |
只要保证两个 Spring Boot 应用使用不同的端口,就能在同一台阿里云服务器上稳定运行。
如果你提供具体的需求(比如是否要域名、是否需要 HTTPS、项目用途等),我可以给出更定制化的部署脚本或架构建议。
秒懂云