阿里云服务器部署2套springboot项目?

服务器

在阿里云服务器上部署两套 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.jardemo2-0.0.1.jar

3. 上传 JAR 包到服务器

使用 scpFileZilla 等工具上传:

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.comproject2.yourdomain.com 解析到你的 ECS 公网 IP。


✅ 四、进程管理优化(推荐)

使用 systemdSupervisor 管理 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)


✅ 五、安全建议

  1. 关闭不必要的端口:只开放 80、443、22(SSH)
  2. 使用防火墙
    sudo firewall-cmd --permanent --add-port=8080/tcp
    sudo firewall-cmd --reload
  3. 使用 HTTPS:配合 Nginx + SSL 证书(阿里云可申请免费证书)
  4. 定期备份:备份 JAR 包和配置

✅ 六、常见问题排查

问题 解决方法
无法访问 检查安全组、防火墙、端口是否开放
端口被占用 netstat -tlnp | grep 8080 查看占用进程
日志报错 查看 app1.logjournalctl -u app1
内存不足 调整 JVM 参数 -Xms256m -Xmx512m

✅ 总结

你可以在一台阿里云服务器上轻松部署两套 Spring Boot 项目,关键点:

  • ✅ 两个项目使用不同端口(如 8080、8081)
  • ✅ 使用 nohupsystemd 后台运行
  • ✅ 可选 Nginx 反向X_X实现域名访问
  • ✅ 注意安全组和防火墙配置

如有具体项目结构或需求(如数据库、Redis、Docker 等),可进一步优化部署方案。

需要我帮你写一个完整的部署脚本或 Docker 版本吗?

未经允许不得转载:CDNK博客 » 阿里云服务器部署2套springboot项目?