注:apache默认访问第一个虚拟主机。

我们配置的www.test.com访问论坛,它的别名www.aaa.com以及ip都可以访问这个论坛,现在就有点疑惑了,test与aaa我们配置了,为什么这个Ip也可以访问这个论坛呢,这呢,就有一个概念,叫做默认的虚拟主机配置文件,不管哪个域名,只要是你解析过来,举个例子说,我们在windows的host文件里再添加一个域名www.bbb.com,也解析到这个ip上,同样也可以访问这个论坛,结论就是不管是什么域名,只要指向到了这台服务器,它都会访问到这个网站,而这个网站是我们虚拟主机里面它的第一个配置文件里面的网站;若不存在的域名去访问的话,就会访问第一个虚拟主机,那我们怎样防止ip或非指定域名访问呢,这时则需要屏蔽掉默认虚拟主机。

## 默认虚拟主机

[root@wy www]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>

   DocumentRoot "/data/tmp"

   ServerName tmp.com

</VirtualHost>

Apache配置——默认虚拟主机_默认虚拟机

说明:根目录随便写一个空目录,域名也随便写一个域名,这样就禁掉了。

解释:

NameVirtualHost *:80功能必须开启

请求服务器默认访问会访问此服务器配置的第一个虚拟主机,为了避免ip访问与非指定域名访问,需要禁止掉。

## 创建目录

[root@wy www]# mkdir /data/tmp

## 检查语法并重新加载

[root@wy www]# /usr/local/apache2/bin/apachectl -t

[root@wy www]# /usr/local/apache2/bin/apachectl graceful

## 此时ip或非指定域名再访问话,就禁止掉了。

Apache配置——默认虚拟主机_默认虚拟机_02

## 测试直接使用ip访问(这样就不能访问)

[root@wy www]# curl 192.168.219.128 -I

HTTP/1.1 403 Forbidden

Date: Sun, 30 Oct 2016 17:04:10 GMT

Server: Apache/2.2.16 (Unix) DAV/2 PHP/5.3.28

Content-Type: text/html; charset=iso-8859-1

## 使用指定域名访问(这样可以访问)

[root@wy www]# curl -x192.168.219.128:80 www.test.com -I

HTTP/1.1 301 Moved Permanently

Date: Sun, 30 Oct 2016 17:07:48 GMT

Server: Apache/2.2.16 (Unix) DAV/2 PHP/5.3.28

X-Powered-By: PHP/5.3.28

location: forum.php

Content-Type: text/html