配置虚拟目录
直接位于站点主目录中的下级子目录称为站点的物理目录,虚拟目录则是在逻辑上属于站点的下级目录,但物理位置并不在站点主目录中。虚拟目录的好处是便于对站点进行维护和扩展,虚拟目录的具体知识可参考之前的博文http://yttitan.blog.51cto.com/70821/1174450。
下面我们将目录/movie设置为站点example.com的虚拟目录。
首先创建目录,并在其中生成首页文件:
# mkdir /movie
# echo ‘virtual directory’ > /movie/index.html
然后修改Apache主配置文件:
# vim /etc/httpd/conf/httpd.conf
在虚拟主机的小节中添加如下的内容:
添加虚拟目录的语法格式为:
Alias 虚拟目录 实际路径
保存退出配置文件,重启服务:
# service httpd restart
在客户端访问的时候需要在URL中指定虚拟目录:
需要注意的是,如果Apache服务器中开启了SELinux,那客户端在访问虚拟目录时会提示拒绝访问,在服务器端需要执行setenforce 0命令将SELinux关闭。
基于客户端地址的访问控制
通过对客户端IP地址的限制可以增强服务器的安全性,客户端IP地址限制只能针对服务器上的某个目录进行设置,在对目录进行设置时,需要遵循统一的规范:
如设置站点www.example.com只允许在本机访问。
修改配置文件/etc/httpd/conf/httpd.conf,增加下面的部分:
其中的设置项目的含义:
<Directory “/var/www/example”>
表示对站点的主目录进行设置。 Order allow,deny
定义控制顺序,先允许后拒绝,最终生效的是deny,也就是拒绝所有客户端访问。 Allow from 192.168.11.61
设置允许访问的地址,地址可以是多个,地址之间用空格间隔,如
“Allow from 192.168.11.61 10.12.79.61”。
设置完成后,保存退出。重启httpd服务生效:
# service httpd restart
此时就只有IP为192.168.11.61的主机(也就是本机)能访问这个网站。
也可以只针对站点下的某个虚拟目录进行设置,如
这样,整个站点所有客户端都可以访问,而www.example.com/movie则只有192.168.11.61可以访问。
下面再思考一下,如果要拒绝192.168.11.61这台客户端访问站点,该如何设置呢?
“Order allow,deny”表示默认拒绝所有客户端访问,然后再配合使用“Allow from”语句指定允许访问的客户端。如果是要设置拒绝访问的客户端,那么就得反过来,先用“Order deny,allow”允许所有客户端访问,然后再配合使用“deny from”拒绝指定的客户端。
本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1206463