Apache下服务器虚拟主机设置方法介绍

时间:2007-09-19 13:28:42  来源:IT专家网  作者:

  2.2.1 为每个虚拟主机运行一份Apache

  采用这种方式,每一份Apache程序可以以单独的用户运行,因此各个虚拟主机之间互不影响。设置这种虚拟主机时,只要为每一份Apache设置一套配置文件就可以了,唯一需要注意的是:必须使用“Listen”语句,强制每一份Apache 仅仅在属于“自己”的IP地址上接收服务请求。

  优点:各个虚拟主机之间互不干扰,安全性高。

  缺点:占用系统资源较多。

  2.2.2多个虚拟主机共享同一份Apache

  采用这种方式,各个虚拟主机共享同一份Apache,因此各个虚拟主机之间有一定的影响,尤其是执行CGI程序时,可能会带来一些严重的安全问题。设置这种虚拟主机时,只要为每一个虚拟主机设置类似如下的信息即可:

  ;

  DocumentRoot /home/company1

  …

  ;

  优点:占用系统资源比上一种方式少。

  缺点:安全性低,每个虚拟主机仍然需要占用一个IP地址。

  2.3 Apache WWW服务器下简单的基于名字的虚拟主机设置

  这种方式下,各个虚拟主机共享同一份Apache,因此有CGI程序运行时,安全性也不高。设置这种虚拟主机时,只要为每一个虚拟主机设置类似如下的信息即可

  NameVirtualHost 111.222.33.44 ; 在这个IP地址接收虚拟主机的服务

  ;

  ServerName www.company1.com

  DocumentRoot /www/company1

  ;

  ;

  ServerName www.company2.com

  DocumentRoot /www/company2

  ;

  优点:只要一个IP地址就可以提供大量的虚拟主机服务。

  缺点:安全性差。维护这些虚拟主机时需要更改配置文件,并且需要重新启动Apache进程才能起作用。因此不适合进行大规模的虚拟主机服务。

  2.4 Apache WWW服务器下基于名字的大规模虚拟主机设置

  所谓大规模虚拟主机,是指能够提供非常多的虚拟主机服务,比如能提供超过数十万个域名的虚拟主机服务。如果使用以上讨论的方法,是很难完成的。实现这种服务的一种方式是利用Apache 功能强大的URL重写功能。下面以一个实例来说明这种方式。

  2.4.1 Apache中URL重写功能

  Apache 1.2及以后版本都有URL重写(Rewrite)功能。简单的说,URL重写功能就是在Apache接收到请求后,在处理的过程中能根据预先设定的规则,对请求中的URL进行修改。这些规则主要由正规表达式组成。重写依赖于输入的URL、各种服务器端环境变量、HTTP请求头中的内容、时间,甚至可以通过外部的程序来使用数据库中的信息来帮助重写。

  URL重写功能非常强大,通过URL重写,可以使Apache完成异常复杂的功能。当然,URL重写功能本身也比较复杂,关于URL重写功能的详细说明可以参看Apache 的随机文档。

  2.4.2 使用Apache中URL重写功能实现基于名字的大规模虚拟主机设置

  假设机器www.home.com提供名字形如abcde.home.com、hijk.home.com等的大规模虚拟主机服务。其中虚拟主机名必须是字母或数字,并且长度至少为3。为了防止一个目录下文件或子目录太多而对性能产生很大的负面影响,对用户的目录按照名字进行分级划分,如虚拟主机abcde.home.com的相关文件存放在目录/member/ab/de/abcde下面。其中“ab”、“de”分别是“abcde”的前边两个字符和最后两个字符。当用户请求http://abcde.home.com时,系统应该返回/member/ab/de/abcde下面的文件。

文章评论

共有 位CH网友发表了评论 查看完整内容