我们凡是所说的虚拟主机技能就是将一台(可能一组)处事器的资源(系统资源、网络带宽、存储空间等)凭据必然的比例支解成若干台相对独立的“小主机”的技能。每一台这样的“小主机”在成果上都可以实现WWW、FTP、Mail等根基的Internet处事,就像利用独立的主机一样。phpma.com
今朝网站处事器的虚拟主机平台利用以开放的Apache为最多,其次是微软的Windows
IIS。Apache具有跨平台(FreeBSD/Linux/Windows/Solaris/Other
UNIX)、易于维护与最佳安详性等利益。
Apache是率先支持基于IP虚拟主机的处事器之一。 Apache
1.1及其更新版本同时支持基于IP和基于主机名的虚拟主机,差异的虚拟主机有时会被称为基于主机(host-based)
或非IP虚拟主机(non-IP virtual hosts)。phpma.com
用Apache配置虚拟主机处事凡是可以回收两种方案:基于IP地点的虚拟主机和基于主机名字的虚拟主机,下面我们别离先容一下它们的实现要领以及优缺点。以便各人在详细的应用中可以或许选择最符合的实现要领。phpma.com
一、Apache实现基于IP地点的虚拟主机(每个站点拥有一个独立IP地点)
利用这种虚拟主机方法,首先要在处事器上为每个虚拟主机单独配置一个IP地点。这些IP地点可以通过增加多个网卡可能在一个网卡上设立多个IP地点来完成。有了多个IP地点后,可以回收以下两种方法之一来配置Apache。 phpma.com
1、为每个虚拟主机运行一份Apache
回收这种方法,每一份Apache措施可以以单独的用户运行,因此各个虚拟主机之间互不影响。配置这种虚拟主机时,只要为每一份Apache配置一套设置文件就可以了,独一需要留意的是:必需利用“Listen”语句,强制每一份Apache
仅仅在属于“本身”的IP地点上吸收处事请求。
利益:各个虚拟主机之间互不滋扰,安详性高。
缺点:占用系统资源较多。
2、多个虚拟主机共享同一份Apache
回收这种方法,各个虚拟主机共享同一份Apache,因此各个虚拟主机之间有必然的影响,尤其是执行CGI措施时,大概会带来一些严重的安详问题。配置这种虚拟主机时,只要为每一个虚拟主机配置雷同如下的信息即可:
<VirtualHost www.ghq1.com>
DocumentRoot /www/ghq1
…
</VirrualHost>
利益:占用系统资源比上一种方法少。
缺点:安详性低,每个虚拟主机仍然需要占用一个IP地点。
譬喻处事器一个网卡上绑定有两个IP地点(172.16.3.40和
172.16.3.50)别离对应域名 www.ghq1.com和www.ghq2.org的处事,设置如下:
处事器设置(apache的设置文件httpd.conf)
Listen 80
<VirtualHost 172.16.3.40>
DocumentRoot /www/ghq1
ServerName www.ghq1.com
</VirtualHost>
<VirtualHost 172.16.3.50>
DocumentRoot /www/ghq2
ServerName www.ghq2.org
</VirtualHost>
设置简朴说明:“Listen”默认httpd处事会监控第80号通信端口, “Listen”选项让用户自行指定apache 处事器监控的IP地点或通信端口。
“DocumentRoot”:指定apache 处事器存放网页的根目次;“ServerName”:答允用户自行配置主机名,这个名称将被送到长途毗连措施,以代替安装apache 处事器主机的真实名称。<VirtualHost IP >和</VirtualHost>组成虚拟主机的语法布局,个中的IP就是我们在处事器上绑定的差异的IP地点,也可以是IP地点加上通信端标语(见下面的例子)。
假如处事器有两个IP地点(172.16.3.40和 172.16.3.50)别离对应域名 www.ghq1.com和www.ghq2.org。对每个域名,我们都但愿在80端口和8080端口宣布我们的网站。可以这样设置:
处事器设置(apache的设置文件httpd.conf)
Listen 172.16.3.40:80
Listen 172.16.3.40:8080
Listen 172.16.3.50:80
Listen 172.16.3.50:8080
<VirtualHost 172.16.3.40:80>
DocumentRoot /www/ghq1-80
ServerName www.ghq1.com
</VirtualHost>
<VirtualHost 172.16.3.40:8080>
DocumentRoot /www/ghq1-8080
ServerName www.ghq1.com
</VirtualHost>