在阿里云ECS(Elastic Compute Service)上部署两个网站,可以通过以下几种方式实现,具体取决于你的技术栈、域名配置和资源使用情况。以下是常见的几种方法:
✅ 方法一:使用 Nginx 反向(推荐,适用于 Linux 系统)
这是最常见和高效的方式,适用于运行在同一个ECS实例上的多个网站。
步骤如下:
1. 安装 Nginx
# Ubuntu/Debian
sudo apt update
sudo apt install nginx -y
# CentOS/RHEL
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
2. 准备两个网站的文件
假设你要部署两个网站:
- 网站A:
site1.com→ 存放路径/var/www/site1 - 网站B:
site2.com→ 存放路径/var/www/site2
创建目录并放入测试文件:
sudo mkdir -p /var/www/site1 /var/www/site2
# 创建测试页面
echo "<h1>Welcome to Site 1</h1>" | sudo tee /var/www/site1/index.html
echo "<h1>Welcome to Site 2</h1>" | sudo tee /var/www/site2/index.html
3. 配置 Nginx 虚拟主机(server block)
创建两个配置文件:
sudo nano /etc/nginx/sites-available/site1.com
内容如下:
server {
listen 80;
server_name site1.com www.site1.com;
root /var/www/site1;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
创建第二个配置:
sudo nano /etc/nginx/sites-available/site2.com
server {
listen 80;
server_name site2.com www.site2.com;
root /var/www/site2;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
4. 启用站点(创建软链接到 sites-enabled)
sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/
5. 测试并重启 Nginx
sudo nginx -t
sudo systemctl reload nginx
6. 域名解析(在阿里云控制台操作)
- 登录 阿里云控制台 → 云解析DNS
- 为
site1.com和site2.com添加 A 记录,指向你的 ECS 公网 IP
✅ 提示:如果你只有一个域名,也可以用子域名,比如
a.yourdomain.com和b.yourdomain.com
✅ 方法二:使用不同端口访问(简单但不推荐用于生产)
如果你不想配置域名,可以为两个网站分配不同端口。
例如:
http://your-ip:8080→ 网站Ahttp://your-ip:8081→ 网站B
示例(使用 Nginx):
server {
listen 8080;
server_name _;
root /var/www/site1;
index index.html;
}
server {
listen 8081;
server_name _;
root /var/www/site2;
index index.html;
}
然后在阿里云 安全组规则 中放行 8080 和 8081 端口。
✅ 方法三:使用 Apache 虚拟主机(如果你习惯 Apache)
类似 Nginx,Apache 也支持基于域名的虚拟主机。
配置文件示例(/etc/apache2/sites-available/site1.conf):
<VirtualHost *:80>
ServerName site1.com
DocumentRoot /var/www/site1
</VirtualHost>
启用站点:
sudo a2ensite site1.conf
sudo a2ensite site2.conf
sudo systemctl reload apache2
✅ 方法四:使用 Docker 隔离部署(高级)
你可以为每个网站创建一个 Docker 容器(如 Nginx 或 Node.js),通过 Docker + Nginx 反向实现隔离。
示例结构:
- 容器1:运行网站A(端口 3000)
- 容器2:运行网站B(端口 4000)
- 主 Nginx:反向到对应容器
🔐 注意事项
-
安全组设置:
- 确保阿里云 ECS 的安全组允许
80(HTTP)、443(HTTPS)端口入站。
- 确保阿里云 ECS 的安全组允许
-
HTTPS 支持:
- 使用 Let’s Encrypt + Certbot 为两个网站配置免费 SSL 证书:
sudo certbot --nginx -d site1.com -d www.site1.com sudo certbot --nginx -d site2.com -d www.site2.com
- 使用 Let’s Encrypt + Certbot 为两个网站配置免费 SSL 证书:
-
资源监控:
- 一个 ECS 实例运行多个网站时,注意 CPU、内存使用情况。
✅ 总结
| 方法 | 适用场景 | 推荐度 |
|---|---|---|
| Nginx 虚拟主机 | 多个域名或子域名 | ⭐⭐⭐⭐⭐ |
| 不同端口访问 | 测试或内网使用 | ⭐⭐ |
| Apache 虚拟主机 | 习惯 Apache 用户 | ⭐⭐⭐⭐ |
| Docker 部署 | 隔离性要求高 | ⭐⭐⭐⭐ |
如果你提供更多信息(如操作系统、网站类型:静态/PHP/Node.js、是否有域名等),我可以给出更具体的配置示例。
ECLOUD博客