可以。阿里云 ECS(云服务器)上完全可以通过 Apache 或 Nginx 部署多个虚拟主机(Virtual Hosts),这是 Web 服务器的标准功能,与云厂商无关。
基本思路
- 准备域名:为每个站点配置独立域名(或子域名),并确保 DNS 解析指向你的阿里云服务器公网 IP。
- 安装 Web 服务器:在 ECS 上安装 Apache 或 Nginx(阿里云镜像通常已预装,也可自行安装)。
- 创建网站目录:为每个虚拟主机创建独立的网站根目录(如
/var/www/site1,/var/www/site2)。 - 配置虚拟主机:
- Apache:在
httpd.conf或conf.d/中为每个站点编写<VirtualHost>块。 - Nginx:在
nginx.conf或sites-available/中为每个站点编写server块。
- Apache:在
- 重启服务:使配置生效。
- 防火墙与安全组:确保阿里云安全组开放了 80/443 端口。
Apache 示例配置(以两个站点为例)
# /etc/httpd/conf.d/site1.conf
<VirtualHost *:80>
ServerName site1.example.com
DocumentRoot /var/www/site1
<Directory /var/www/site1>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
# /etc/httpd/conf.d/site2.conf
<VirtualHost *:80>
ServerName site2.example.com
DocumentRoot /var/www/site2
<Directory /var/www/site2>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Nginx 示例配置
# /etc/nginx/conf.d/site1.conf
server {
listen 80;
server_name site1.example.com;
root /var/www/site1;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
}
# /etc/nginx/conf.d/site2.conf
server {
listen 80;
server_name site2.example.com;
root /var/www/site2;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
}
注意事项
- SSL 证书:如需 HTTPS,可为每个虚拟主机配置独立的 SSL 证书(支持多域名 SAN 证书或 Let’s Encrypt 自动申请)。
- PHP-FPM:若运行 PHP 应用,需为每个站点配置对应的
php-fpm池(Nginx)或mod_php(Apache)。 - 资源隔离:建议为不同业务设置独立的日志文件、用户权限和限制(如
LimitRequestBody、client_max_body_size)。 - 安全组规则:登录阿里云控制台 → 实例 → 安全组 → 添加入方向规则(TCP 80/443)。
只要正确配置,单个阿里云 ECS 即可轻松支撑数十甚至上百个虚拟主机,具体数量取决于服务器资源配置(CPU、内存、带宽等)。
CLOUD技术笔记