apache虚拟主机是什么?apache虚拟主机就是在apache服务器上配置多个虚拟主机,从而把一个服务器提供多站点的服务实现。用通俗的话来说就是对同一个服务器上的不同目录进行访问。那么如何在Apache服务器下配置虚拟主机?今天小恩给大家来总结一下Apache服务器下的虚拟主机设置的几种方法。
一、Apache www服务器下简单的基于名字的虚拟主机设置
这种方式下,各个虚拟主机共享同一份Apache,因此有CGI程序运行时,安全性也不高。设置这种虚拟主机时,只要为每一个虚拟主机设置类似如下的信息即可NameVirtualHost 111.222.33.44;在这个 IP 地址接收虚拟主机的服务ServerName DocumentRoot /www/company1 ServerName
优点:只要一个IP地址就可以提供大量的虚拟主机服务。
缺点:安全性差。维护这些虚拟主机时需要更改配置文件,并且需要重新启动 Apache 进程才能起作用。因此不适合进行大规模的虚拟主机服务。
二、Apache www服务器下基于名字的大规模虚拟主机设置
所谓大规模虚拟主机,是指能够提供非常多的虚拟主机服务,比如能提供超过数十万个域名的虚拟主机服务。如果使用以上讨论的方法,是很难完成的。实现这种服务的一种方式是利用 Apache 功能强大的 URL 重写功能。下面以一个实例来说明这种方式。
假设机器 提供名字形如abcde.idcbest.com、hijk.idcbest.com等的大规模虚拟主机服务。其中虚拟主机名必须是字母或数字,并且长度至少为3。为了防止一个目录下文件或子目录太多而对性能产生很大的负面影响,对用户的目录按照名字进行分级划分,如虚拟主机 abcde.idcbest.com 的相关文件存放在目录/member/ab/de/abcde 下面。其中“ab”、“de”分别是“abcde”的前边两个字符和最后两个字符。当用户请求abcde.idcbest.com 时,系统应该返回/member/ab/de/abcde 下面的文件。下面是为了完成这种功能需要进行的设置:
a.对域名服务器的设置假设 的IP地址为 202.103.190.57,在域名服务器DNS的idcbest.com数据文件中增加一行:* INA 202.103.190.57 这样,所有 *.idcbest.com的IP地址都会被解析为202.103.190.57,就没有必要为各个虚拟主机分别进行设置。
b.对Apache的设置首先使用命令“httpd-1 ”检查mod_rewrite模块是否已经编译到Apache中,如果没有,重新编译Apache。
三、Apache www服务器下基于IP地址的虚拟主机设置
使用这种虚拟主机方式,首先要在服务器上为每个虚拟主机单独设置一个IP地址。这些IP地址可以通过增加多个网卡或者在一个网卡上设立多个IP地址来完成。有了多个IP地址后,可以采用以下两种方式之一来设置Apache:
1、为每个虚拟主机运行一份Apache采用这种方式,每一份Apache程序可以以单独的用户运行,因此各个虚拟主机之间互不影响。设置这种虚拟主机时,只要为每一份Apache设置一套配置文件就可以了,唯一需要注意的是:必须使用“Listen”语句,强制每一份Apache仅仅在属于“自己”的IP地址上接收服务请求。
优点:各个虚拟主机之间互不干扰,安全性高。
缺点:占用系统资源较多。
2、多个虚拟主机共享同一份 Apache 采用这种方式,各个虚拟主机共享同一份Apache,因此各个虚拟主机之间有一定的影响,尤其是执行CGI程序时,可能会带来一些严重的安全问题。设置这种虚拟主机时,只要为每一个虚拟主机设置类似如下的信息即可DocumentRoot /home/company1。
优点:占用系统资源比上一种方式少。
缺点:安全性低,每个虚拟主机仍然需要占用一个 IP 地址。
www服务器虚拟主机的使用越来越多,尤其是对中小型站点,通过使用虚拟主机技术,可以减少开销,减少维护管理工作量。
本文介绍了www服务器虚拟主机的两种工作方式,并讨论了在Apache www服务器下的各种虚拟主机、尤其是大规模虚拟主机的设置技术,并比较了各种方式的特点。
当用户对安全性要求较高时,可以使用基于IP地址的虚拟主机方式,并且每一个虚拟主机由单独的Apache进程进行服务。其他情况下,可以根据实际要求来设置虚拟主机服务。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。