项目背景:
众所周知,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服务器软件
因为我已经安装成功了所以 显示已经安装,你可以自己安装一下。
二、首先介绍一下基于ip的虚拟主机!
1、我们要明白,基于ip的话我们需要有多个ip地址,但是如果我们只要一块网卡的话该怎么办?我们可以用一个网卡虚拟出来多个ip地址:
2、假如我们没有DNS服务器的话,我们可以修改/etc/hosts文件使ip和域名一一对应!
3、建立三个虚拟主机存放网页的根目录,如在/www目录下建立fuchao1、fuchao2、fuchao3文件夹,其中分别存放1.html、2.html、3.html.
4、最重要的地方了,修改apache的配置文件!
为了不想每次去apache的主配置文件里面修改,所以我创建一个文件专门用来写以ip地址的虚拟主机配置。
在我们创建的配置文件里写入下面的代码!
[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服务
可以看到都生效了!!!
4、测试一下!
可以看到我们成功了!!!!!
三、基于主机名的虚拟主机。
1、首先修改我们的/etc/hosts配置文件
可以看到,我把上个实验添加的注释掉了,然后在文件最下面添加了三行!
2、这次实验我还是使用上次实验建立的虚拟主机目录。所以不用进行操作,但是如果你没做上次实验直接想做这次的实验,那么你可以看着上面的教程先创建所需的虚拟主机目录。
3、备份上一个实验我们创建的配置文件,然后把它清空先!
我们第二个实验想直接使用第一个的已经被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服务
我们ping一下www.fuchao1.com www.fuchao2.com www.fuchao3.com 看一下它们的实际ip
可以看到虽然域名不相同但是主机名是一样的,接下来我们分别访问一下我们上个实验创建的那个测试页面,看一下它的效果!
貌似跟第一个看起来是一样的但是它们的ip却是同一个,证明我们三个域名可以有三个网站!
四、基于端口的虚拟主机!
1、配置文件修改,添加两个监听端口(8001、8002)在apache的配置文件里
2、在配置文件最下方添加下面图片上的配置文件内容
4、重启httpd服务
可以看到我们的试验成功了!
总结:这篇博文相信对于大家实际生产有特别大的帮助,可以帮大家解决多个问题,谢谢大家,有问题的话可以在下面讨论里面问我,谢谢大家!知识在于分享!!!!共同进步!!!