ecs服务器上部署两个项目?

在阿里云 ECS(Elastic Compute Service)服务器上部署两个项目是完全可行的,具体方式取决于项目的类型(如 Web 应用、Node.js、Java、Python 等)、运行端口以及是否使用 Nginx/Apache 做反向。以下是几种常见的部署方式和步骤:


✅ 一、基本思路

方法一:不同端口部署

  • 项目1运行在 3000 端口,项目2运行在 4000 端口。
  • 通过访问 http://公网IP:3000http://公网IP:4000 来区分访问。

方法二:使用 Nginx 反向(推荐)

  • 使用域名 + 不同路径或子域名进行访问:
    • http://example.com/project1
    • http://project2.example.com
  • Nginx 负责将请求转发给对应服务的端口。

🧩 二、部署流程详解

步骤 1:准备环境

确保你的 ECS 上安装了以下基础软件(根据项目需要选择):

  • Node.js / npm(如果是前端或 Node 项目)
  • Java / Tomcat(如果是 Java 项目)
  • Python / Gunicorn(如果是 Python 项目)
  • Nginx(用于反向)
  • PM2(Node 项目进程管理工具)
# 示例安装 nginx 和 node
sudo apt update
sudo apt install nginx -y
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

步骤 2:分别部署两个项目

项目1示例(Node.js 项目,监听 3000 端口)

cd /var/www/project1
npm install
node app.js   # 或使用 pm2 启动

项目2示例(Node.js 项目,监听 4000 端口)

cd /var/www/project2
npm install
node server.js

步骤 3:开放安全组端口(阿里云控制台)

  • 登录 阿里云控制台
  • 找到你的 ECS 实例 -> 安全组 -> 配置规则
  • 添加入方向规则,允许 30004000 端口(TCP)

⚠️ 注意:生产环境下建议不要直接暴露应用端口,应使用 Nginx 做并关闭非 80/443 的端口访问。


步骤 4:使用 Nginx 反向(可选但推荐)

编辑 Nginx 配置文件:

sudo nano /etc/nginx/sites-available/default

添加如下内容:

server {
    listen 80;

    location /project1/ {
        proxy_pass http://localhost:3000/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    location /project2/ {
        proxy_pass http://localhost:4000/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

保存后重启 Nginx:

sudo systemctl restart nginx

这样就可以通过:

  • http://your-domain.com/project1
  • http://your-domain.com/project2

来访问两个项目了。


🌐 三、多域名或多子域名方案(高级)

如果你有两个不同的域名或者一个主域名加多个子域名,也可以这样做:

server {
    listen 80;
    server_name project1.example.com;

    location / {
        proxy_pass http://localhost:3000;
        ...
    }
}

server {
    listen 80;
    server_name project2.example.com;

    location / {
        proxy_pass http://localhost:4000;
        ...
    }
}

然后配置 DNS 解析到你的 ECS 公网 IP。


📦 四、其他注意事项

事项 说明
进程守护 推荐使用 pm2(Node 项目)或 systemd 管理服务
日志查看 检查 /var/log/nginx/error.log 或项目日志文件
安全 关闭不必要的端口,启用 HTTPS(可以使用 Let’s Encrypt)
域名绑定 需要在阿里云备案后才能绑定正式域名

🧪 示例总结

项目 类型 端口 访问方式
项目A Node.js 3000 http://example.com/project1
项目B Python Flask 5000 http://example.com/project2

如果你能提供更具体的项目信息(比如技术栈、是否已有域名等),我可以给出更详细的部署建议 👇

是否需要我帮你写一份完整的部署脚本?

未经允许不得转载:CLOUD技术博 » ecs服务器上部署两个项目?