在阿里云服务器(ECS)上实现多个虚拟主机,通常是指在一个服务器实例上运行多个网站(即不同的域名指向同一个IP地址,但根据域名显示不同的内容)。这可以通过 Apache 或 Nginx 的虚拟主机配置 来实现。
下面是两种常见方式的详细步骤:
✅ 一、使用 Apache 配置多个虚拟主机
步骤1:安装 Apache
# Ubuntu/Debian
sudo apt update
sudo apt install apache2 -y
# CentOS/RHEL
sudo yum install httpd -y
sudo systemctl start httpd
sudo systemctl enable httpd
步骤2:创建网站目录
为每个网站创建独立的目录:
sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html
步骤3:创建示例页面
例如:
echo "Hello from example.com" > /var/www/example.com/public_html/index.html
echo "Hello from test.com" > /var/www/test.com/public_html/index.html
步骤4:配置虚拟主机文件
创建两个 .conf 文件:
/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
</VirtualHost>
/etc/apache2/sites-available/test.com.conf
<VirtualHost *:80>
ServerName test.com
ServerAlias www.test.com
DocumentRoot /var/www/test.com/public_html
</VirtualHost>
步骤5:启用站点并重启 Apache
sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
sudo systemctl restart apache2
注意:CentOS 下不需要
a2ensite,直接修改httpd.conf或放入conf.d/目录即可。
✅ 二、使用 Nginx 配置多个虚拟主机
步骤1:安装 Nginx
# Ubuntu/Debian
sudo apt install nginx -y
# CentOS
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
步骤2:创建网站目录
同上:
sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html
步骤3:创建示例页面
echo "Hello from example.com" > /var/www/example.com/public_html/index.html
echo "Hello from test.com" > /var/www/test.com/public_html/index.html
步骤4:配置虚拟主机文件
/etc/nginx/sites-available/example.com
server {
listen 80;
server_name example.com www.example.com;
location / {
root /var/www/example.com/public_html;
index index.html;
try_files $uri $uri/ =404;
}
}
/etc/nginx/sites-available/test.com
server {
listen 80;
server_name test.com www.test.com;
location / {
root /var/www/test.com/public_html;
index index.html;
try_files $uri $uri/ =404;
}
}
步骤5:启用站点并重启 Nginx
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/
# 删除默认站点(可选)
sudo rm /etc/nginx/sites-enabled/default
sudo nginx -t # 检查语法
sudo systemctl restart nginx
✅ 三、域名解析设置(阿里云控制台)
- 在 阿里云控制台 添加 A 记录,将你的多个域名解析到 ECS 实例的公网 IP。
- 示例:
example.com → 1.2.3.4 test.com → 1.2.3.4
✅ 四、补充说明
| 内容 | 说明 |
|---|---|
| 是否需要多个IP? | 不需要。一个公网IP就可以支持多个虚拟主机。 |
| 如何支持HTTPS? | 可以为每个虚拟主机配置 SSL 证书(如 Let’s Encrypt)。 |
| 推荐 Web 服务器 | Nginx 性能更好,推荐用于生产环境。 |
如果你有具体的系统版本(如 Ubuntu 20.04、CentOS 7 等),我可以提供更精确的命令。
是否需要我帮你生成完整的配置文件模板?
CDNK博客