在华为云(Huawei Cloud)上,一个服务器(ECS 实例)是可以部署多个项目的。这在实际开发和运维中是非常常见的需求,比如你可能想在一个服务器上同时部署前端项目和后端项目,或者部署两个不同的 Web 应用。
下面是详细的部署方式和步骤:
✅ 一、部署思路
你可以通过以下几种方式在同一台 ECS 服务器上部署多个项目:
方法一:使用不同端口运行
- 每个项目监听不同的端口。
- 示例:
- 项目 A 使用
80 - 项目 B 使用
8080
- 项目 A 使用
方法二:使用 Nginx 反向X_X + 域名/路径区分
- 配置 Nginx 根据域名或路径将请求转发给不同的服务。
- 示例:
a.example.com转发到localhost:3000b.example.com转发到localhost:8080
方法三:使用 Docker 容器化部署
- 每个项目运行在一个独立的容器中,映射不同的端口。
- 示例:
- 容器1:
docker run -p 3000:3000 projectA - 容器2:
docker run -p 8080:8080 projectB
- 容器1:
✅ 二、具体操作步骤(以方法一和方法二为例)
🔧 场景示例:
- 你有一个 ECS 实例(如 CentOS 或 Ubuntu)
- 想部署两个 Node.js 项目(也可以是 Java、Python 等)
🛠️ 方法一:使用不同端口部署多个项目
步骤 1:上传代码
分别上传两个项目的代码到服务器的不同目录,例如:
/projectA
/projectB
步骤 2:配置并启动项目
进入每个目录,安装依赖并启动服务,指定不同的端口:
# 进入项目A目录
cd /projectA
npm install
npm start -- --port 3000
# 进入项目B目录
cd /projectB
npm install
npm start -- --port 8080
步骤 3:开放安全组端口
在华为云控制台为你的 ECS 实例的安全组添加规则,放行 3000 和 8080 端口。
步骤 4:访问项目
- 访问:
http://<服务器公网IP>:3000(项目A) - 访问:
http://<服务器公网IP>:8080(项目B)
🛠️ 方法二:使用 Nginx 做反向X_X(推荐)
优点:
- 用户无需加端口号访问
- 更好的 URL 管理
- 支持 HTTPS
步骤 1:安装 Nginx
# CentOS
sudo yum install nginx
# Ubuntu
sudo apt update && sudo apt install nginx
步骤 2:配置 Nginx(编辑 /etc/nginx/conf.d/multi.conf)
server {
listen 80;
server_name a.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 80;
server_name b.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
⚠️ 注意:你需要将
a.example.com和b.example.com解析到你的服务器公网 IP。
步骤 3:重启 Nginx
sudo systemctl restart nginx
步骤 4:访问项目
- 访问:
http://a.example.com→ 映射到项目A(端口3000) - 访问:
http://b.example.com→ 映射到项目B(端口8080)
🐳 方法三:使用 Docker 部署多个项目(高级)
如果你熟悉 Docker,可以这样部署:
docker run -d -p 3000:3000 my-project-a
docker run -d -p 8080:8080 my-project-b
然后配合 Nginx 做反向X_X即可。
✅ 总结
| 方法 | 说明 | 适用场景 |
|---|---|---|
| 不同端口 | 直接部署,简单快捷 | 测试环境或简单应用 |
| Nginx 反向X_X | 优雅地管理多个服务 | 生产环境、多域名或多路径 |
| Docker 容器化 | 高度隔离,便于维护 | 微服务架构、复杂部署 |
如果你想我帮你写具体的 Nginx 配置文件或脚本,可以告诉我你使用的系统、语言框架、是否已有域名等信息,我可以给你定制方案。
云计算导航