cszer

虚拟主机原理及Apache虚拟主机的设置

分类: 技术, Apache       评论: 1   阅读:2,818 views

本文主要介绍下web服务器虚拟主机的工作原理,讨论在Apache几种虚拟主机的设置及其优缺点。

一、虚拟主机原理

虚拟主机就是指在单个物理台服务器上运行多个web站点(如一台服务器可以有www.company1.com和www.company2.com两个站点)。虚拟主机有基于ip和基于主机名两种工作方式。基于ip的工作方式就意味着你必须为每个web站点配置不同的ip地址;而基于主机名的工作方式则表示每个ip地址都可以运行多个web站点,当然,终端用户感觉不到这种方式下跟由不同的机器提供不同的服务有什么差别。

1.1 基于ip的虚拟主机方式

提供这种方式的服务器必须配置多个ip地址,不同的主机名解析到不同的ip地址。

缺点:这种方式不仅浪费了ip地址,而且限制了单台服务器提供虚拟主机服务的数量,因此这种方式已经很少使用了。但是早期的http1.0协议只支持这种虚拟主机方式.

2.2 基于主机名的虚拟主机方式

在http1.1协议中,增加了基于主机名的虚拟主机方式的支持。当客户程序向web服务器发出请求时,将要访问的主机名通过请求头“host:”语句传给web服务器。例如,一台服务器的一个ip同时为www.company1.com和www.company2.com提供虚拟服务,当客户程序要访问www.company1.com时,发出的请求头的包含如下内容:

GET /index.html HTTP/1.1
Host: www.company1.com
…..

web服务程序受到这个请求后,通过检测“host:”语句来判断客户程序要访问的是哪个虚拟服务,然后再做进一步的处理。
优点:提供虚拟服务的服务器只需配置一个IP,理论上就可以为无数个虚拟主机提供服务,节省资源并易于维护。
缺点:早期的http1.0不能使用。

二、Apache虚拟主机的设置

2.1 Apache 基于ip的虚拟主机方式的实现

2.1.1 一个虚拟主机运行一个Apache

在”Listen”语句中,强制每个Apache服务 仅能在属于”自己”的IP地址上接收服务请求。
优点:各个虚拟主机之间互不干扰,安全性高。
缺点:占用系统资源较多。

2.1.2 多个虚拟主机共享一个Apache

1
2
3
4
<virtualHost www.company1.com>
DocumentRoot /home/company1
…
</virrualHost>

优点:占用系统资源较少。
缺点:安全性较低

2.2Apache基于主机名的虚拟机方式的实现

1
2
3
4
5
6
7
8
9
NameVirtualHost 111.222.33.44 ; #在这个IP地址接收虚拟主机的服务
<virtualHost 111.222.33.44>
ServerName www.company1.com
DocumentRoot /www/company1
</virtualHost>
<virtualHost 111.222.33.44>
ServerName www.company2.com
DocumentRoot /www/company2
</virtualHost>

优点:一个ip提供多个虚拟主机服务
缺点:安全性低。维护虚拟主机而更改配置文件时,需重启Apache服务

除非注明,文章皆由( csz )原创,转载请标明本文地址
本文地址: http://www.cszhi.com/20110910/virtual_host.html

09-10
2011

发表评论