Web虚拟主机指的是在同一台服务器中运行多个Web站点,其中的每一个站点实际上并不独自占用整个服务器,因此被成为“虚拟”Web主机。通过虚拟Web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本‘
虚拟的Web主机有三种类型

  • 基于域名的虚拟主机
  • 基于IP地址的虚拟主机
  • 基于端口的虚拟主机
    对于基于IP地址的虚拟主机,每个虚拟Web主机使用不同的IP地址,但是都通过同一台httpd服务器对外提供Web浏览服务。正因如此,用来支撑这些虚拟Web主机的服务器就需要大量的网络接口,这在实际应用中成本较高,所以基于IP地址的虚拟主机在实际应用中并不常见,本文中就不做介绍,接下来着重讲其他两种的虚拟Web主机。

构建虚拟的Web主机

实验准备

  • linux虚拟机(Red Hat Enterprise 6.5)IP:192.168.175.103
  • windows 7 客户机

    实验思路

    1. 为虚拟主机提供域名解析
    2. 为虚拟主机提供网页文档
    3. 添加虚拟主机配置
    4. 在客户机中访问虚拟Web主机

      实验开始

      基于域名的虚拟主机

      首先需要正确安装好httpd服务器软件,可以选择RPM安装,或者源码编译安装两种方式.
      在httpd服务器的配置文件中添加监听地址以及主机名
      在该配置文件中修改(/etc/httpd/conf/httpd.conf),同时要注释掉IPv6行

Listen 192.168.175.103:80
ServerName www.localhost.com

为虚拟主机提供域名解析

RPM安装DNS服务器软件

修改主配置文件

Httpd服务器中构建Web虚拟主机

修改区域配置文件

Httpd服务器中构建Web虚拟主机

修改区域数据配置文件

Httpd服务器中构建Web虚拟主机
对于“accp.com”的配置文件,只需要复制“benet.com”d的即可,注意保留属主(cp -p)。文件名也要更改,否则无效。
启动服务,同时利用‘host’测试地址解析是否正常

service named start
host www.benet.com  //命令查看地址解析结果

关于DNS更详细的配置方法可参考我以前的博客:域名解析服务

为虚拟主机添加网页文档

在opt目录下,为虚拟主机创建站点,同时编写简单的测试网页
Httpd服务器中构建Web虚拟主机

添加虚拟主机配置

在/etc/httpd/conf.d/目录下创建.conf 结尾的配置文件,将以下内容写入

NameVirtualHost 192.168.175.103:80                                     //指定IP地址及相对应端口
<VirtualHost 192.168.175.103:80>
   ServerAdmin webmaster@dummy-host.example.com      //管理员邮箱
   DocumentRoot /opt/benet/                                                     //站点目录
   ServerName www.benet.com                                                 //服务器名称
   ErrorLog logs/benet.com-error_log                                      //错误日志
   CustomLog logs/benet.com-access_log common                //访问日志
</VirtualHost>

基于相同端口号,相同IP地址但是不同主机名,要在该配置文件下同时创建两个配置内容
Httpd服务器中构建Web虚拟主机

在客户机中访问虚拟Web主机

所有配置完成之后,启动服务,关闭防火墙及selinux防火墙

service httpd start
service iptables stop
setenforce 0

在windows7虚拟机中设置网络,同时添加DNS地址
Httpd服务器中构建Web虚拟主机
使用IE浏览器进行访问测试
Httpd服务器中构建Web虚拟主机
Httpd服务器中构建Web虚拟主机

基于端口的虚拟主机

和基于域名的虚拟主机一样,首先安装httpd服务器软件,修改配置文件,因为我们时基于端口的,所以要增加一个新的监听地址,IP相同端口不同。

Listen 192.168.175.103:80
Listen 192.168.175.103:8080
ServerName www.localhost.com

为虚拟主机提供域名解析

主配置文件的修改都时一样的,对于区域配置文件,只需要增加一个"benet.com"一个区域即可,区域数据配置文件也只需写一个即可。
启动服务

为虚拟主机添加网页文档

在/opt目录下添加两个站点,同时创建两个首页网站。

添加虚拟主机配置

Httpd服务器中构建Web虚拟主机

在客户机中访问虚拟Web主机

启动服务,关闭防火墙及selinux防火墙
在windows7虚拟机中配地址,及DNS地址,利用IE浏览器进行测试
Httpd服务器中构建Web虚拟主机
Httpd服务器中构建Web虚拟主机