务器虚拟主机原理是怎样的 |
务器虚拟主机是指使用一台物理机器,充当多个主机名的 www服务器。比如由一台机器同时提供 等的www服务,而浏览这些www站点的用户感觉不到这种方式下跟由不同的机器提供不同的服务有什么差别。 使用 www虚拟主机的好处在于,一些小规模的网站,通过跟其他网站共享同一台物理机器,可以减少系统的运行成本,并且可以减少管理的难度。另外,对于个人用户,也可以使用这种虚拟主机方式来建立有自己独立域名的www服务器,目前国内有很多公司都提供这种免费的服务。 www虚拟主机有两种工作方式: 一、基于 IP 地址的虚拟主机方式这种方式下,不同的主机名解析到不同的IP 地址,提供虚拟主机服务的机器上同时设置有这些 IP 地址。服务器根据用户请求的目的 IP 地址来判定用户请求的是哪个虚拟主机的服务,从而进一步的处理。 缺点:基于 IP 地址的虚拟主机方式需要在提供虚拟主机服务的机器上设立多个 IP 地址,既浪费了 IP 地址,又限制了一台机器所能容纳的虚拟主机数目。因此这种方式越来越少使用。但是,这种方式是早期使用的 HTTP 1.0 协议唯一支持的虚拟主机方式。 二、基于主机名的虚拟主机方式由于基于 IP 地址的虚拟主机方式有如上的缺点,HTTP 协议中增加了对基于主机名的虚拟主机的支持。 具体说,当客户程序向WWW服务器发出请求时,客户想要访问的主机名也通过请求头中的Host: 语句传递给WWW服务器。 比如,都对应于同一个IP地址(即由同一台机器来给这两个虚拟域名提供服务),客户程序要存取时,发出的请求头中包含有如下的内容:GET /index.html HTTP/ Host:务器程序接收到这个请求后,可以通过检查Host:语句,来判定客户程序请求是哪个虚拟主机的服务,然后再进一步的处理。 优点:提供虚拟主机服务的机器上只要设置一个 IP地址,理论上就可以给无数多个虚拟域名提供服务,占用资源少,管理方便。目前基本上都是使用这种方式来提供虚拟主机服务。 缺点:在早期的 HTTP 1 . 0 版本下不能使用。实际上现在使用的浏览器基本上都支持基主机名的虚拟主机方式。 |