华为云怎么一个服务器怎么部署两个项目?

在华为云(如弹性云服务器 ECS)上部署两个项目到同一个服务器,可以通过多种方式实现。以下是一个通用的指导流程,适用于常见的 Web 项目部署场景(如 Java、Node.js、Python、PHP 等),你可以根据自己的具体技术栈进行调整。


🧩 场景说明

  • 服务器:一台华为云 ECS 实例
  • 目标:在这台服务器上部署两个独立项目(例如 A 和 B)
  • 常见方式
    • 使用不同端口运行两个服务
    • 使用 Nginx 做反向 + 域名区分
    • 使用 Docker 容器隔离部署

✅ 方法一:使用不同端口直接部署

步骤:

  1. 准备环境

    • 安装必要的运行时环境(如 JDK、Node.js、Python、Nginx、MySQL 等)
    • 安装防火墙工具(如 firewalldiptables
  2. 分别启动两个项目

    • 项目 A 启动在端口 3000(比如 Node.js 项目)
      node appA.js --port 3000
    • 项目 B 启动在端口 8000(比如 Python Flask 项目)
      python appB.py --port 8000
  3. 开放安全组规则

    • 在华为云控制台中为这两个端口(3000、8000)开放入方向访问权限
  4. 访问方式

    • 项目 A:http://<公网IP>:3000
    • 项目 B:http://<公网IP>:8000

✅ 方法二:使用 Nginx 反向 + 域名区分

这是更推荐的方式,适合对外提供服务,可以使用域名统一入口。

步骤:

  1. 绑定两个域名

    • 比如:a.example.comb.example.com
    • 将这两个域名解析到你的 ECS 公网 IP
  2. 安装并配置 Nginx

    sudo apt update && sudo apt install nginx
  3. 配置第一个站点 a.example.com

    创建文件 /etc/nginx/sites-available/a.conf

    server {
       listen 80;
       server_name a.example.com;
    
       location / {
           proxy_pass http://localhost:3000;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
       }
    }
  4. 配置第二个站点 b.example.com

    创建文件 /etc/nginx/sites-available/b.conf

    server {
       listen 80;
       server_name b.example.com;
    
       location / {
           proxy_pass http://localhost:8000;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
       }
    }
  5. 启用配置并重启 Nginx

    sudo ln -s /etc/nginx/sites-available/a.conf /etc/nginx/sites-enabled/
    sudo ln -s /etc/nginx/sites-available/b.conf /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl restart nginx
  6. 访问测试

    • 项目 A:http://a.example.com
    • 项目 B:http://b.example.com

✅ 方法三:使用 Docker 部署(推荐用于隔离环境)

如果你希望两个项目互不干扰,可以使用 Docker 容器部署。

步骤:

  1. 安装 Docker 和 Docker Compose

    sudo apt update
    sudo apt install docker.io docker-compose
  2. 创建两个 Docker 容器分别运行项目 A 和 B

    示例 docker-compose.yml 文件:

    version: '3'
    services:
     project-a:
       image: your-project-a-image
       ports:
         - "3000:3000"
       container_name: project-a
    
     project-b:
       image: your-project-b-image
       ports:
         - "8000:8000"
       container_name: project-b
  3. 启动容器

    docker-compose up -d
  4. 配合 Nginx 做反向(可选)

    • 如方法二所述,用 Nginx 把请求分发给对应的容器

🔐 补充建议

  • 防火墙/安全组设置:确保对应端口在华为云控制台的安全组中已开放。
  • HTTPS 支持:可以使用 Let’s Encrypt 为每个域名申请 SSL 证书,提升安全性。
  • 进程守护:使用 PM2(Node.js)、systemd、supervisor 等工具保证服务持续运行。
  • 日志管理:建议将项目日志输出到指定路径,便于排查问题。

📌 总结

方式 特点 适用场景
不同端口直接部署 简单快速 内部测试或简单用途
Nginx + 多域名 统一入口,易于维护 正式上线网站项目
Docker 部署 环境隔离,便于扩展 多个复杂项目共存

如果你能告诉我你使用的具体技术栈(比如 Spring Boot、Django、Vue、React 等),我可以给你更详细的部署示例和命令。需要的话请继续提问!

未经允许不得转载:CLOUD技术博 » 华为云怎么一个服务器怎么部署两个项目?