AllowOverride表示是否允许该配置被覆盖。例如:AllowOverride None表示不允许该Directory目录下的访问控制文件(.htaccess)来改变这里的配置;AllowOverride All表示允许访问控制文件.htaccess来改变这里的配置。
iv.Order Allow,Deny
Order用来表示对页面的访问控制顺序,后面的一项是默认选项,如:Order Allow,Deny则默认是Deny。Allow from all表示允许所有用户。
3. 基于IP的多站点配置
适用场景:web服务器存在多块网卡,有多个IP地址,这里假设有两个IP地址,一个为:192.168.17.128,它对应域名;一个为:192.168.17.131,它对应域名。
a. 存在主服务器
1) 基本配置
还记得在/etc/httpd/conf/httpd.conf中提到的三大块配置,其中就有主服务配置,假设192.168.17.128对应主服务器,而另外一个IP192.168.17.131用于构建两个或多个虚拟主机。配置如下:
192.168.17.128上主服务器配置:
i.监听80端口:Listen 80
ii.主服务器配置区:ServerName
iii.主服务器配置区:DocumentRoot /var/www/html/test01
192.168.17.131上多虚拟主机配置:
虚拟主机配置:VirtualHost 192.168.17.131:80
/etc/httpd/conf.d/中添加、的配置,配置内容与“基于域名的多站点配置”等同。
在web浏览器中分别访问:、和会显示各自的输出。
注意:设置主服务器后,所有不是针对192.168.17.131的请求都将由主服务器来伺服;而提交给192.168.17.131却没有主机名或没有Host:头的请求,都将为伺服(因为配置文件中,它最靠前)。
2) 测试场景
需要测试两种情况:
一、不是针对192.168.17.131的请求都将由主服务器来伺服
二、提交给192.168.17.131却没有主机名或没有Host:头的请求,都将为伺服
现在为web服务器配置三个网络,如下图所示:
并在本机的hosts文件中,添加如下IP与域名的对应关系:
访问,页面输出“Welcome to access web site test01 ... ”,验证了不是针对192.168.17.131的请求都将由主服务器来伺服。
访问,页面输出“Welcome to access web site test02 ... ”,验证了提交给192.168.17.131却没有主机名或没有Host:头的请求,都将为伺服。
b. 不存在主服务器
适用场景:假设web服务器有两个IP地址(192.168.17.128和172.20.30.40),该机器内网和外网均可以访问,在外部,域名:指向外部地址172.20.30.40,而在内部同样的域名指向内部地址192.168.17.128。
服务器可以配置为向来自内部和外部的请求提供同样的内容,只需要一个VirtualHost配置段就可以达到这个目的,服务器配置如下:
监听80端口:Listen 80
配置虚拟主机:NameVirtualHost 192.168.17.128:80
NameVirtualHost 172.20.30.40:80
/etc/httpd/conf.d/www.test01.conf配置内容:
[root@Slaver conf.d]# cat
<VirtualHost 192.168.17.128:80 172.20.30.40:80>
DocumentRoot /var/www/html/test01
ServerName
<Directory /var/www/html/test01>
Options Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>
[root@Slaver conf.d]#
现在从不同网络提交的请求都会由同一个VirtualHost来伺服。