在阿里云服务器上部署两套 Spring Boot 项目是完全可行的,以下是详细的部署步骤和建议,帮助你顺利完成部署。
✅ 一、准备工作
1. 购买阿里云 ECS 服务器
- 推荐配置:至少 2核4G 内存(部署两个项目建议内存 ≥ 4G)
- 操作系统:推荐 CentOS 7/8、Ubuntu 20.04+
- 安全组:开放端口(如 80、443、8080、8081 等)
✅ 二、环境安装
1. 安装 JDK
# 查看是否已安装
java -version
# 若未安装,安装 OpenJDK(以 CentOS 为例)
sudo yum install -y java-1.8.0-openjdk
# 或者上传 Oracle JDK 并配置环境变量
2. 安装并启动防火墙(可选)
# 开放端口(例如 8080 和 8081)
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=8081/tcp
sudo firewall-cmd --reload
✅ 三、部署两个 Spring Boot 项目
方法一:直接运行两个 JAR 包(不同端口)
1. 上传 JAR 包
将两个 Spring Boot 项目打包为 JAR 文件,上传到服务器:
scp project1.jar root@your-server-ip:/root/project1/
scp project2.jar root@your-server-ip:/root/project2/
2. 修改配置文件(application.yml)
确保两个项目使用不同端口:
项目1:application.yml
server:
port: 8080
项目2:application.yml
server:
port: 8081
也可以通过启动参数指定端口,无需改配置文件。
3. 启动项目(后台运行)
# 启动项目1
nohup java -jar project1.jar --server.port=8080 > project1.log 2>&1 &
# 启动项目2
nohup java -jar project2.jar --server.port=8081 > project2.log 2>&1 &
4. 查看进程
ps -ef | grep java
5. 访问测试
- 项目1:
http://your-server-ip:8080 - 项目2:
http://your-server-ip:8081
方法二:使用 Nginx 反向X_X(推荐用于生产)
1. 安装 Nginx
# CentOS
sudo yum install -y nginx
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;
}
}
你也可以使用路径区分,例如:
yourdomain.com/app1→ 8080yourdomain.com/app2→ 8081
3. 重启 Nginx
sudo nginx -t # 测试配置
sudo systemctl reload nginx
4. 域名解析
将 project1.yourdomain.com 和 project2.yourdomain.com 解析到你的服务器公网 IP。
✅ 四、进程守护(推荐使用 systemd)
避免使用 nohup,更推荐使用 systemd 管理服务。
创建服务文件:
sudo vim /etc/systemd/system/project1.service
内容:
[Unit]
Description=Spring Boot Project 1
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/bin/java -jar /root/project1/project1.jar --server.port=8080
Restart=always
[Install]
WantedBy=multi-user.target
同理创建 project2.service,端口改为 8081。
启用并启动:
sudo systemctl daemon-reload
sudo systemctl start project1
sudo systemctl start project2
sudo systemctl enable project1
sudo systemctl enable project2
✅ 五、注意事项
- 端口冲突:确保两个项目使用不同端口。
- 内存分配:如果内存紧张,可通过
-Xms和-Xmx控制 JVM 内存。java -Xms512m -Xmx1024m -jar project1.jar - 日志管理:定期清理日志或使用 logrotate。
- 安全性:关闭不必要的端口,使用防火墙限制访问。
- HTTPS:可使用 Nginx + SSL 证书实现 HTTPS。
✅ 六、总结
| 方式 | 说明 |
|---|---|
| 直接运行 JAR | 简单,适合测试 |
| Nginx 反向X_X | 推荐生产环境,支持域名、HTTPS、负载均衡 |
| systemd 管理 | 更稳定,自动重启 |
如果你提供两个项目的用途(如前后端分离、微服务等),我还可以给出更具体的部署建议(如使用 Docker、Nginx + 域名分流等)。
需要我帮你写完整的部署脚本或 Nginx 配置模板吗?
云服务器