项目背景:

众所周知,apache作为企业web服务器的老大哥,使用的用户特别多,虽然现在有很火的naginx,但是呢apache还是占据不可动摇的地位!!!我们在生产过程中会出现以下问题:

我们有一台服务器,但是我们有多个网站想要对外提供服务?

这个时候根据不同的情况有三种虚拟主机方法可以选择

1、基于域名

2、基于ip

3、基于主机的端口


实验环境:

虚拟机VMware Workstation 12 player

服务器:centos6.5的系统  ip:192.168.0.25  hostname:omserver.fuchao.com

SecureCRT ssh远程连接软件

httpd-2.2.15-47.el6.centos.3.x86_64


实验过程:

一、apache在服务器端安装

因为centos的自带的yum源免费可正常使用,不像redhat想要免费还得配yum源。

所以我们可以直接用yum安装apache服务器软件

apache的三种虚拟主机应用场景!!!_基于端口因为我已经安装成功了所以 显示已经安装,你可以自己安装一下。

二、首先介绍一下基于ip的虚拟主机!

1、我们要明白,基于ip的话我们需要有多个ip地址,但是如果我们只要一块网卡的话该怎么办?我们可以用一个网卡虚拟出来多个ip地址:

apache的三种虚拟主机应用场景!!!_实现_02

2、假如我们没有DNS服务器的话,我们可以修改/etc/hosts文件使ip和域名一一对应!

apache的三种虚拟主机应用场景!!!_基于端口_033、建立三个虚拟主机存放网页的根目录,如在/www目录下建立fuchao1、fuchao2、fuchao3文件夹,其中分别存放1.html、2.html、3.html.

apache的三种虚拟主机应用场景!!!_基于端口_04

4、最重要的地方了,修改apache的配置文件!

为了不想每次去apache的主配置文件里面修改,所以我创建一个文件专门用来写以ip地址的虚拟主机配置。

apache的三种虚拟主机应用场景!!!_基于端口_05apache的三种虚拟主机应用场景!!!_基于端口_06

在我们创建的配置文件里写入下面的代码!

[root@ omserver conf.d]# vim httpd-vhosts.conf 

<VirtualHost 192.168.0.26:80>

  ServerName www.fuchao1.com

  DocumentRoot /www/fuchao1/

  <Directory "/www/fuchao1">

     Options Indexes FollowSymLinks

     AllowOverride None

     Order allow,deny

     Allow From All

   </Directory>

</VirtualHost>


<VirtualHost 192.168.0.27:80>

  ServerName www.fuchao2.com

  DocumentRoot /www/fuchao2/

  <Directory "/www/fuchao2">

     Options Indexes FollowSymLinks

     AllowOverride None

     Order allow,deny

     Allow From All

   </Directory>

</VirtualHost>


<VirtualHost 192.168.0.28:80>

  ServerName www.fuchao3.com

  DocumentRoot /www/fuchao3/

  <Directory "/www/fuchao3">

     Options Indexes FollowSymLinks

     AllowOverride None

     Order allow,deny

     Allow From All

   </Directory>

</VirtualHost>

重启httpd服务

apache的三种虚拟主机应用场景!!!_实现_07可以看到都生效了!!!

4、测试一下!

apache的三种虚拟主机应用场景!!!_实现_08apache的三种虚拟主机应用场景!!!_基于端口_09apache的三种虚拟主机应用场景!!!_基于端口_10

可以看到我们成功了!!!!!

三、基于主机名的虚拟主机。

1、首先修改我们的/etc/hosts配置文件

apache的三种虚拟主机应用场景!!!_实现_11可以看到,我把上个实验添加的注释掉了,然后在文件最下面添加了三行!

2、这次实验我还是使用上次实验建立的虚拟主机目录。所以不用进行操作,但是如果你没做上次实验直接想做这次的实验,那么你可以看着上面的教程先创建所需的虚拟主机目录。

3、备份上一个实验我们创建的配置文件,然后把它清空先!

apache的三种虚拟主机应用场景!!!_实现_12

我们第二个实验想直接使用第一个的已经被include的配置文件,所以我们需要把原来的内容先清空!

4、在httpd-vhosts.conf文件里面写入下面的内容!

[root@ omserver conf.d]# vim httpd-vhosts.conf

NameVirtualHost *:80

<VirtualHost *:80>

  ServerName *


  DocumentRoot /www/


</VirtualHost>


<VirtualHost *:80>


  ServerName www.fuchao1.com


  DocumentRoot /www/fuchao1/


  <Directory "/www/fuchao1">


    Options Indexes FollowSymLinks


    AllowOverride None


    Order allow,deny


    Allow from all


  </Directory>


</VirtualHost>




<VirtualHost *:80>


  ServerName www.fuchao2.com


  DocumentRoot /www/fuchao2/


  <Directory "/www/fuchao2">


    Options Indexes FollowSymLinks


    AllowOverride None


    Order allow,deny


    Allow from all


  </Directory>


</VirtualHost>

<VirtualHost *:80>


  ServerName www.fuchao3.com


  DocumentRoot /www/fuchao3/


  <Directory "/www/fuchao3">


    Options Indexes FollowSymLinks


    AllowOverride None


    Order allow,deny


    Allow from all


  </Directory>


</VirtualHost>

[root@ omserver conf.d]# 

注意我这个文件的位置是 /etc/httpd/conf.d目录下!!!!

5、测试!!!!!

首先重启一下httpd服务

apache的三种虚拟主机应用场景!!!_apache_13

我们ping一下www.fuchao1.com www.fuchao2.com www.fuchao3.com 看一下它们的实际ip

apache的三种虚拟主机应用场景!!!_apache_14可以看到虽然域名不相同但是主机名是一样的,接下来我们分别访问一下我们上个实验创建的那个测试页面,看一下它的效果!

apache的三种虚拟主机应用场景!!!_实现_15

apache的三种虚拟主机应用场景!!!_apache_16

apache的三种虚拟主机应用场景!!!_基于端口_17

貌似跟第一个看起来是一样的但是它们的ip却是同一个,证明我们三个域名可以有三个网站!

四、基于端口的虚拟主机!

1、配置文件修改,添加两个监听端口(8001、8002)在apache的配置文件里 

apache的三种虚拟主机应用场景!!!_基于端口_182、在配置文件最下方添加下面图片上的配置文件内容

apache的三种虚拟主机应用场景!!!_apache_193、创建基于端口虚拟主机的测试页面

apache的三种虚拟主机应用场景!!!_实现_20

apache的三种虚拟主机应用场景!!!_apache_21

4、重启httpd服务

apache的三种虚拟主机应用场景!!!_实现_225、测试一下我们最后一个实验!

apache的三种虚拟主机应用场景!!!_基于端口_23

apache的三种虚拟主机应用场景!!!_实现_24

可以看到我们的试验成功了!


总结:这篇博文相信对于大家实际生产有特别大的帮助,可以帮大家解决多个问题,谢谢大家,有问题的话可以在下面讨论里面问我,谢谢大家!知识在于分享!!!!共同进步!!!