前言:一些公司拥有多个网站,可是每个网站不可能在一台服务器上跑,因为成本太高了,然而虚拟主机可以解决该问题,虚拟主机使得一台服务器可以运行多个网站。而配置虚拟主机的方法有三种,分别是:基于 IP 地址不同端口的虚拟主机、基于不同 IP 地址的虚拟主机、基于域名的虚拟主机这三种,下面就对他们各自进行详述吧! <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1.     检查是否安装了 Apache 的相关组件,同时关闭掉防火墙先(免得忘记, ^_^ , 截图如下:

     <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

2.     配置基于 IP 地址不同端口的虚拟主机:配置一台虚拟主机,其 Ip 地址为 192.168.10.100 ,分别使用 8000 8080 端口,其 Web 站点的根目录分别为 /var/www/html/IP_8000 /var/www/html/IP_8080 。同时在 IP_8000 目录和 IP_8080 目录下分别建立 Index.html 文件,并分别在 Index.html 文件中添加一些内容。截图如下:

3.     查看一下网卡的 IP 地址,如果网卡的 Ip 地址不是我们所需要的那个 IP 地址的话,我们可以创建临时起作用的 IP 地址,输入命令“ ifconfig eth0 192.168.10.100 netmask 255.255.<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />255.0. 查看一下网卡 IP 地址截图如下:
  

4.     编辑 /etc/httpd/conf/httpd.conf 文件,设置其内容,在配置文件的最后面就是虚拟主机的设置,这里只截关键的图,截图如下:
  
  

架设同一 IP 地址不同端口的多个虚拟主机时, Listen 参数值为端口号,而在 <VirtualHost  IP 地址:端口号 > 语句块中,指定了 DocumentRoot 参数值就制定虚拟主机的站点目录。

5.     输入命令“ service httpd restart , 重启 httpd 服务,同时在 windows 计算机中启动 IE ,地址栏中输入: http://192.168.10.100:8000, http://192.168.10.100:8080, 显示如下图所示:
  
  
  

6.     基于相同 IP 地址不同端口的虚拟主机测试成功。

7.     基于不同 IP 地址的虚拟主机:配置一台虚拟主机,其 Ip 地址分别是 192.168.10.100 192.168.10.196 ,其 web 站点的根目录为 /var/www/html/IP_100 /var/www/html/IP_196. 并且在 IP_100 IP_196 两个目录下分别创建 Index.html 文件,并写入一些内容到 Index.html 文件中。截图如下:  

8.     由于我的虚拟机上用了两块网卡, eth0 IP 地址是 192.168.10.196 ,另一块网卡 eth1 IP 地址是 192.168.10.100 ,所以我就决定用着两块网卡来做实验,如果你只有一块网卡的话,那么你也不用着急怕做不了这个实验,因为 Linux 中的网卡支持虚拟子接口,所以使用“ ifconfig eth0:0 192.168.10.100和“ifconfig eth0:1 192.168.10.196就可以实现了,但是要让这些子接口有效的话,一定要保证eth0 这个网卡是启动有效的。由于我有两块网卡,所以我就用两块网卡做实验,截图如下:

    

9.     编辑 /etc/httpd/conf/httpd.conf 文件,设置其内容,在配置文件的最后面就是虚拟主机的设置,添加下面截图的内容,这里只截关键的图,截图如下:

    

10. 输入命令“ service httpd restart , 重启 httpd 服务,同时在 windows 计算机中启动 IE ,地址栏中输入 http://192.168.10.100, http://192.168.10.196 显示虚拟主机的主页如下:截图如下:

     

    

   

11. 基于不同 IP 地址的虚拟主机测试成功

12. 基于域名的虚拟主机:配置一虚拟主机,其 IP 地址为 192.168.10.100 ,设置两个虚拟主机,其域名分别是 product.redhat.com service.redhat.com.( 注:由于我的 DNS 服务器已经搭建好了,用的域名是 redhat.com ,在这里我就不再做详细介绍,可以去看《 DNS 服务器的架设》这份文档,这里就把主区域和反向区域进行截图 ) 我们在 /var/www/http/ 目录下分别建立 Vhost_service Vhost_product 目录,并分别在两个目录中创建 Index.html 文件,截图如下:
  

13. 创建 DNS 服务器的配置文件,输入命令“ vim /var/named/chroot/etc/named.conf ”,文件内容如下:
  

14. 编辑 redhat.com 这个域的正向区域文件,输入命令“ vi /var/named/chroot/var/named/yangzexin.redhat.com , 编辑的内容如下, product.redhat.com service.redhat.com IP 地址 192.168.10.100 的对应关系。

    

15. 编辑 redhat.com 这个域的反向区域文件,输入命令“ vi /var/named/chroot/var/named/192.168.10.in-addr.arpa , 编辑的内容如下, IP 地址 192.168.10.100 和域名 product.redhat.com service.redhat.com 的对应关系。
  

16. 启动 named 守护进程,输入命令“ service named Start

17. 编辑 /etc/httpd/conf/httpd.conf 文件,添加内容如下,截图如下:
  

架设不同域名的多个虚拟主机是, <VirtualHost IP 地址:端口号 > 语句块的 Servicename 参数值就是虚拟主机的域名, DocumentRoot 参数值就是指定虚拟主机的站点目录。

18. 重启 httpd 守护进程,输入命令“ service httpd restart” 重启。

19. windows 计算机下打开 IE 浏览器,在地址栏输入: http://service.redhat.com http://product.redhat.com 将分别显示 /var/www/html/Vhost_service /var/www/html/Vhost_product 目录下 Index.html 文件的内容,如图所示: