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

在阿里云服务器上部署两套 Spring Boot 项目是完全可行的。以下是详细的部署步骤和建议,帮助你顺利实现。


✅ 前提条件

  1. 已有一台阿里云 ECS 实例(Linux 系统,如 CentOS、Ubuntu)
  2. Java 环境已安装(JDK 8 或以上)
  3. Maven/Gradle 已安装(用于打包)
  4. Spring Boot 项目已打包为 JAR 文件

🛠️ 部署方案一:两个独立 JAR 应用(推荐)

步骤 1:准备两个 Spring Boot 项目

确保两个项目分别打包成独立的 .jar 文件,例如:

  • project-a.jar(使用端口 8080)
  • project-b.jar(使用端口 8081)

⚠️ 注意:两个项目不能使用相同的端口,否则会冲突。

修改 application.ymlapplication.properties 设置不同端口:

# project-a 的配置
server:
  port: 8080
# project-b 的配置
server:
  port: 8081

步骤 2:上传 JAR 到服务器

使用 scp 或 FTP 工具将两个 JAR 文件上传到服务器,例如:

scp project-a.jar root@your-server-ip:/root/springboot/
scp project-b.jar root@your-server-ip:/root/springboot/

或通过 SFTP 工具(如 FileZilla)上传。


步骤 3:创建启动脚本(可选但推荐)

在服务器上为每个项目创建启动脚本,便于管理。

示例:start-a.sh

#!/bin/bash
cd /root/springboot
nohup java -jar project-a.jar > a.log 2>&1 &
echo "Project A started on port 8080"

示例:start-b.sh

#!/bin/bash
cd /root/springboot
nohup java -jar project-b.jar > b.log 2>&1 &
echo "Project B started on port 8081"

赋予执行权限:

chmod +x start-a.sh start-b.sh

运行脚本:

./start-a.sh
./start-b.sh

步骤 4:验证服务是否启动

查看进程:

ps aux | grep java

访问接口测试:

  • http://your-server-ip:8080/health
  • http://your-server-ip:8081/health

步骤 5:配置安全组(阿里云控制台)

登录 阿里云控制台:

  1. 找到你的 ECS 实例
  2. 进入「安全组」配置
  3. 添加规则,放行端口:
    • 8080(TCP)
    • 8081(TCP)

也可以考虑用 Nginx 反向X_X统一使用 80 端口。


🔄 方案二:使用 Nginx 反向X_X(更专业)

如果你希望两个项目都通过域名或 80/443 端口访问,可以使用 Nginx 做反向X_X。

安装 Nginx

# Ubuntu
sudo apt update && sudo apt install nginx -y

# CentOS
sudo yum install nginx -y

配置 Nginx

编辑配置文件:

sudo vim /etc/nginx/conf.d/springboot.conf

内容如下:

server {
    listen 80;
    server_name project-a.example.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 project-b.example.com;

    location / {
        proxy_pass http://127.0.0.1:8081;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

重启 Nginx:

sudo systemctl restart nginx

然后你可以通过域名访问:

  • http://project-a.example.com
  • http://project-b.example.com

💡 提示:记得把域名解析到你的服务器公网 IP。


🔐 补充建议

  1. 使用 systemd 管理服务(生产推荐)

    创建系统服务,让 Spring Boot 应用随系统启动。

    示例:/etc/systemd/system/project-a.service

    [Unit]
    Description=Project A
    After=network.target
    
    [Service]
    Type=simple
    User=root
    ExecStart=/usr/bin/java -jar /root/springboot/project-a.jar
    Restart=always
    
    [Install]
    WantedBy=multi-user.target

    启用服务:

    systemctl enable project-a.service
    systemctl start project-a.service
  2. 日志管理

    使用 logback-spring.xml 控制日志输出路径,避免日志混乱。

  3. JVM 参数优化

    启动时加上内存参数:

    java -Xms512m -Xmx1024m -jar project-a.jar

✅ 总结

方式 特点
直接运行 JAR 简单快速,适合测试
Nginx 反向X_X 支持域名、HTTPS、负载均衡
systemd 服务管理 生产环境推荐,自动重启

如果你提供更多信息(如服务器配置、是否需要 HTTPS、是否已有域名),我可以进一步帮你定制部署方案。

需要我生成完整的部署脚本或 Nginx 配置模板吗?

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