阿里云弹性应用服务器如何部署多个网站?

在阿里云弹性应用服务器(Elastic Compute Service, ECS)上部署多个网站,可以通过以下几种方式实现,具体取决于你的技术栈、网站类型(静态/动态)、域名数量以及维护需求。以下是常见的几种部署方法:


一、使用 Web 服务器反向(推荐方式)

1. 安装 Web 服务器(如 Nginx 或 Apache)

Nginx 为例(适用于 Linux 系统):

# 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. 为每个网站配置 Nginx 虚拟主机(Server Block)

假设你有两个网站:

  • site1.com → 存放于 /var/www/site1
  • site2.com → 存放于 /var/www/site2
步骤:
  1. 创建网站目录并放入内容:
sudo mkdir -p /var/www/site1 /var/www/site2
echo "Hello from Site 1" | sudo tee /var/www/site1/index.html
echo "Hello from Site 2" | sudo tee /var/www/site2/index.html
  1. 创建 Nginx 配置文件:
# site1 配置
sudo tee /etc/nginx/sites-available/site1.com << 'EOF'
server {
    listen 80;
    server_name site1.com www.site1.com;

    root /var/www/site1;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}
EOF

# site2 配置
sudo tee /etc/nginx/sites-available/site2.com << 'EOF'
server {
    listen 80;
    server_name site2.com www.site2.com;

    root /var/www/site2;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}
EOF
  1. 启用站点(创建软链接):
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/
  1. 删除默认站点(可选):
sudo rm /etc/nginx/sites-enabled/default
  1. 测试配置并重启 Nginx:
sudo nginx -t
sudo systemctl reload nginx

3. 域名解析

在阿里云 域名控制台site1.comsite2.com 的 A 记录指向你的 ECS 公网 IP。


二、使用 Apache 实现多站点

类似 Nginx,Apache 使用 VirtualHost 配置:

<VirtualHost *:80>
    ServerName site1.com
    DocumentRoot /var/www/site1
    <Directory /var/www/site1>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName site2.com
    DocumentRoot /var/www/site2
    <Directory /var/www/site2>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

启用站点并重启 Apache。


三、使用不同端口访问(不推荐用于生产)

你可以让每个网站监听不同端口(如 8080, 8081),然后通过 your-ip:8080 访问。但这种方式用户体验差,且不利于 SEO。


四、使用应用容器(如 Docker)

如果你的网站是 Node.js、Python、Java 等应用,可以使用 Docker 部署多个容器,并通过 Nginx 反向:

server {
    listen 80;
    server_name site1.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
    }
}

server {
    listen 80;
    server_name site2.com;

    location / {
        proxy_pass http://localhost:4000;
        proxy_set_header Host $host;
    }
}

五、HTTPS 支持(推荐)

使用 Let’s Encrypt 为每个站点配置 SSL 证书:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d site1.com -d www.site1.com

六、安全与优化建议

  1. 安全组配置:在阿里云控制台确保安全组放行 80 和 443 端口。
  2. 防火墙:如使用 ufwfirewalld,确保开放端口。
  3. 定期备份:备份网站文件和数据库。
  4. 监控与日志:查看 Nginx 日志 /var/log/nginx/ 排查问题。

总结

方法 适用场景 优点 缺点
Nginx/Apache 虚拟主机 多个静态或动态网站 成本低、配置灵活 需手动维护
Docker + 反向 微服务或复杂应用 隔离性好、易于扩展 学习成本略高
不同端口 测试或内部使用 简单 用户体验差

推荐方案:使用 Nginx 虚拟主机 + 域名解析 + HTTPS,适合大多数中小型网站部署。

如需进一步帮助(如 WordPress 多站点、Node.js 应用部署),可提供具体技术栈,我可以给出详细配置。