在阿里云服务器上部署两套 Spring Boot 项目是完全可行的。以下是详细的部署步骤和建议,帮助你顺利完成。
✅ 一、前提准备
1. 阿里云服务器(ECS)
- 已购买并配置好阿里云 ECS 实例(如 CentOS、Ubuntu 等 Linux 系统)
- 开放所需端口(如 80、443、8080、8081 等)
- 安全组规则允许访问端口
2. 基础环境安装
在服务器上安装以下软件:
# Java(推荐 JDK 8 或 11)
sudo yum install java-1.8.0-openjdk -y
# 或使用 apt(Ubuntu)
sudo apt install openjdk-8-jdk -y
# Maven(可选,用于编译)
sudo yum install maven -y
# Git(可选,用于拉取代码)
sudo yum install git -y
✅ 二、部署两套 Spring Boot 项目
方式一:独立端口部署(推荐)
1. 项目配置不同端口
在两个 Spring Boot 项目的 application.yml 中配置不同端口:
项目1:application.yml
server:
port: 8080
项目2:application.yml
server:
port: 8081
2. 打包项目
本地使用 Maven 打包:
mvn clean package
生成 target/demo1-0.0.1.jar 和 demo2-0.0.1.jar
3. 上传 JAR 包到服务器
使用 scp 或 FileZilla 等工具上传:
scp demo1-0.0.1.jar root@your-server-ip:/root/project1/
scp demo2-0.0.1.jar root@your-server-ip:/root/project2/
4. 启动项目(后台运行)
# 启动项目1
nohup java -jar demo1-0.0.1.jar > app1.log 2>&1 &
# 启动项目2
nohup java -jar demo2-0.0.1.jar > app2.log 2>&1 &
✅ 使用
nohup可避免终端关闭后进程终止
5. 验证服务
访问:
- http://your-server-ip:8080
- http://your-server-ip:8081
✅ 三、使用 Nginx 反向X_X(可选,更专业)
如果你希望使用域名访问,或统一通过 80/443 端口访问,建议使用 Nginx。
1. 安装 Nginx
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
2. 配置 Nginx 反向X_X
编辑配置文件:
sudo vim /etc/nginx/conf.d/springboot.conf
内容如下:
server {
listen 80;
server_name project1.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 project2.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. 域名解析
将 project1.yourdomain.com 和 project2.yourdomain.com 解析到你的 ECS 公网 IP。
✅ 四、进程管理优化(推荐)
使用 systemd 或 Supervisor 管理 Java 进程,更稳定。
示例:systemd 配置(以项目1为例)
sudo vim /etc/systemd/system/app1.service
内容:
[Unit]
Description=Spring Boot App 1
After=network.target
[Service]
User=root
ExecStart=/usr/bin/java -jar /root/project1/demo1-0.0.1.jar
SuccessExitStatus=143
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl start app1
sudo systemctl enable app1
同理配置 app2.service(端口 8081)
✅ 五、安全建议
- 关闭不必要的端口:只开放 80、443、22(SSH)
- 使用防火墙:
sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload - 使用 HTTPS:配合 Nginx + SSL 证书(阿里云可申请免费证书)
- 定期备份:备份 JAR 包和配置
✅ 六、常见问题排查
| 问题 | 解决方法 |
|---|---|
| 无法访问 | 检查安全组、防火墙、端口是否开放 |
| 端口被占用 | netstat -tlnp | grep 8080 查看占用进程 |
| 日志报错 | 查看 app1.log 或 journalctl -u app1 |
| 内存不足 | 调整 JVM 参数 -Xms256m -Xmx512m |
✅ 总结
你可以在一台阿里云服务器上轻松部署两套 Spring Boot 项目,关键点:
- ✅ 两个项目使用不同端口(如 8080、8081)
- ✅ 使用
nohup或systemd后台运行 - ✅ 可选 Nginx 反向X_X实现域名访问
- ✅ 注意安全组和防火墙配置
如有具体项目结构或需求(如数据库、Redis、Docker 等),可进一步优化部署方案。
需要我帮你写一个完整的部署脚本或 Docker 版本吗?
CDNK博客