首页 > 代码库 > 基于域名的虚拟主机

基于域名的虚拟主机

构建虚拟web主机

1:虚拟web主机是在同一台服务器中运行多个web站点,其中的每一个站点实际上并不独立占用整个服务器,所以被称为"虚拟web主机"通过虚拟web主机可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。

2:httpd可以方便构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的web站点。httpd支持的虚拟主机类型包括一下三种

第一种:基于域名:每个虚拟主机使用不同的域名,但是其对用的ip地址是一样的。例如:www.benet.com和www.accp.com站点的ip地址都是192.168.1.1。这个是使用最普遍的虚拟web主机类型。

第二种:基于ip地址:为每个虚拟主机使用不同的域名,并且各自对应的ip地址也不相同,这种方式需要为服务器配置多个网络接口,因此应用并不是非常广泛。

第三种:基于端口:这种方式并不使用域名和ip地址来区分不同的站点内容,而是使用不同的TCP端口,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。

注意:上面三种虚拟web主机中,基于域名的虚拟主机使用最为广泛,另外不同类型的虚拟主机其区分机制各不相同,建议不要同时使用。以免混淆!

实验一:基于域名的虚拟主机

1:使用一台httpd服务器搭建两个虚拟web主机www.benet.com和www.accp.com,IP地址为:192.168.1.1

2:为虚拟主机准备网页文档

先为每个虚拟web主机准备网站目录及网页文档。为了测试方便,分别为每个虚拟web主机提供包含不同内容的首页文件。例如:在/var/www/html/目录下创建两个子文件夹benet.com和accp.com,分别作为www.benet.com和www.accp.com的网站根目录,分别编写测试网页文件。

技术分享

技术分享

首先需要源码安装httpd服务并启动http的服务

技术分享

3:添加虚拟主机配置

在httpd服务器的主配置文件中,如果要启用基于域名的虚拟web主机,通常需要配置一下方面:

※ 监听地址:使用NameVirtualHost配置项指定提供虚拟主机服务的ip地址,也就是进行域名查询时各虚拟web主机的ip地址。例如:192.168.1.1

※ 虚拟主机区域:使用<VirtualHost 监听地址〉......</VirtualHost〉区域配置。为每个虚拟web主机建立独立的配置内容,其中最少应该包括虚拟主机的网站名称,网页根目录的配置项,其他配置项可根据需求添加

※ 目录权限:使用<Directory 目录位置>......</ Directory>区域配置,为每一个虚拟web主机的网站目录设置访问权限。如允许任何人访问。

当虚拟web主机的数量较多时,建议使用独立的虚拟主机配置文件,然后在httpd.conf文件中通过lnclude加载这些配置、这样可以将httpd.conf文件的改动减至最少,更方便配置内容的维护。

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享重载服务

技术分享

最后客户机访问web站点

在客户机的浏览器中,使用网站名称分别访问不同的虚拟web主机,确实能够看到不同的网页内容,就表示基于域名的主机配置成功。

技术分享

技术分享

而其他两种方式基于ip地址和基于端口的虚拟主机和域名类似,只是不能使用NameVirtualHost来指定监听服务器的地址。

基于域名的虚拟主机