虚拟主机分为基于 ip 地址的( IP-based )和基于名称的( name-based )两种。
基于 IP 地址的虚拟主机大家虽然在同一台机器上,还是要给每个域名配置独立的 IP 地址,这样看来还不能算是一 种很理想的方案。有没有用一台机器、一个 IP 地址,又能实现独立的域名呢?
这个想法随着 http/1.1 协议的出现得到了实现。它的原理是用 Web 服务器和浏览器共同作用来实现把虚拟的域名与 相应的目录或站点对应。这样用户在浏览器里输入不同的名字,虽然由 DNS 服务器解析出的是同一个 IP ,但得到的却是 不同的内容。看上去就象两个独立的域名了。所以这种基于名称的虚拟主机又称为非 IP 的( non-IP )。这同时还有一 个用处,可以给很长的 URL 起一个即好记又有意义的别名。这就是虚拟域名。
实现虚拟域名要有两方面的支持:
一是 Web 服务器:
现在有很多的 Web Server 支持基于名称的虚拟主机。象 Netscape , IIS 等都支持。当然用的最多的还是 Apache Web Server ,究其原因是因为它配置方便,还是免费的,而且它是第一个实现了基于名称的虚拟主机的服务器产品。