虚拟主机指的是在单一机器上运行多个网站 ,一般原则是一个网站对应一个虚拟主机。 虚拟主机可以是基于 IP地址,即每个 IP 一个站点;
<VirtualHost www.lunax.info>
ServerAdmin webmaster@mail.lunax.info
DocumentRoot /groups/lunax/www
ServerName www.lunax.info
ErrorLog /groups/lunax/logs/error_log
TransferLog /groups/lunax/logs/access_log
</VirtualHost>
<VirtualHost www.lunax.org>
ServerAdmin webmaster@mail.lunax.org
DocumentRoot /groups/lunax/www
ServerName www.lunax.org
ErrorLog /groups/lunax/logs/error_log
TransferLog /groups/lunax/logs/access_log
也可以是基于名称, 即每个 IP 多个站点。这些站点运行在vps服务器而对于用户来说看起来是唯一的战点。
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>
<VirtualHost *:80>
ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain
</VirtualHost>
Apache 是第一个支持基于 IP 的虚拟主机的服务器。 Apache 1.1版本 及以上版本支持基于 IP 和基于名称的虚拟主机。 基于名称的虚拟主机有时候称为基于主机或非 IP 的虚拟主机。
我们在看看如何用两个ip地址配置基于ip和基于名称的多个网站例子
Server configuration
Listen 80
NameVirtualHost 172.20.30.40
<VirtualHost 172.20.30.40>
DocumentRoot /www/example1
ServerName www.example.com
</VirtualHost>
<VirtualHost 172.20.30.40>
DocumentRoot /www/example2
ServerName www.example.org
</VirtualHost>
<VirtualHost 172.20.30.40>
DocumentRoot /www/example3
ServerName www.example3.net
</VirtualHost>
# IP-based
<VirtualHost 172.20.30.50>
DocumentRoot /www/example4
ServerName www.example4.edu
</VirtualHost>
<VirtualHost 172.20.30.60>
DocumentRoot /www/example5
ServerName www.example5.gov
</VirtualHost>