阿里云ecs如何布置两个网站?

在阿里云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.comsite2.com 添加 A 记录,指向你的 ECS 公网 IP

✅ 提示:如果你只有一个域名,也可以用子域名,比如 a.yourdomain.comb.yourdomain.com


✅ 方法二:使用不同端口访问(简单但不推荐用于生产)

如果你不想配置域名,可以为两个网站分配不同端口。

例如:

  • http://your-ip:8080 → 网站A
  • http://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:反向到对应容器

🔐 注意事项

  1. 安全组设置

    • 确保阿里云 ECS 的安全组允许 80(HTTP)、443(HTTPS)端口入站。
  2. 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
  3. 资源监控

    • 一个 ECS 实例运行多个网站时,注意 CPU、内存使用情况。

✅ 总结

方法 适用场景 推荐度
Nginx 虚拟主机 多个域名或子域名 ⭐⭐⭐⭐⭐
不同端口访问 测试或内网使用 ⭐⭐
Apache 虚拟主机 习惯 Apache 用户 ⭐⭐⭐⭐
Docker 部署 隔离性要求高 ⭐⭐⭐⭐

如果你提供更多信息(如操作系统、网站类型:静态/PHP/Node.js、是否有域名等),我可以给出更具体的配置示例。

未经允许不得转载:ECLOUD博客 » 阿里云ecs如何布置两个网站?