时间:2021-05-19
今天在公司配置Zend本地Apache环境的时候,发现在zend.conf中的权限控制中的几段句子,如下所示:
复制代码 代码如下:
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
自己在配置虚拟主机的时候需要配置VirtualHost,
复制代码 代码如下:
<VirtualHost *:80>
ServerName backend
DocumentRoot "D:/Program Files/Zend/Apache2/htdocs/public"
SetEnv APPLICATION_ENV "development"
<Directory "D:/Program Files/Zend/Apache2/htdocs/public">
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
两段Order语句的不同引起了我的兴趣,那么到底这里的顺序是怎样执行的呢?先前联想到了“短路”的概念,有相同,也有不同,下面用几个例子来分析一下。
复制代码 代码如下:
Order deny,allow
–(注意deny与allow之间只有一个逗号,并且只能这样书写,其他写法都是错误的)
Allow from all
Deny from 219.204.253.8
全部都可以通过。
复制代码 代码如下:
Order deny,allow
Deny from 219.204.253.8
Allow from all
–全部都可以通过 。
复制代码 代码如下:
Order allow,deny
Deny from 219.204.253.8
Allow from all
只有219.204.253.8不能通过。
复制代码 代码如下:
Order allow,deny
Allow from all
Deny from 219.204.253.8
只有219.204.253.8不能通过 。
根据Apache官网的 解释,allow方向影响的是可以通过一个服务器区域的主机,这个主机可以通过主机名(hostname)、IP地址、IP地址范围或者通过其他的客户端 请求条件。与之相反的正是deny,deny控制的是不被服务器所允许的主机,deny的识别方式也是主机名(hostname)、IP地址及范围、或者 环境变量等。而位于顶层的Order起到的作用就是制定规则。比如上面案例1中,我们的Order为先检查deny后检查allow,那么我们可以把下面 的两句话当做一个list,这两句话没有自然的先后顺序,即检查deny时候,我们发现219.204.253.8这台主机是满足拒绝条件的,那么就进行 第二步检测,即allow的检查,发现allow做的事情是:allow from all,意思即全部来源都可以获得通过。这里的关键是,一切访客进来之后都不是一棒子打死的,都要经过两步验证,那么可以发现全部机器都是可以获得通过 的,与结果一致。
案例2中,Order顺序是先deny后allow,那么我们的步骤即在deny规则里面发现219.204.253.8是满足deny规则的,那 么进入第二步检查,发现依然是allow all,结果同样是全部允许。这里我们可以得到的结论是,Order语句之后的两个from语句的自然先后顺序是没有关系的,检查的顺序完全是按照 Order事先约定好的进行。
这样来看案例3就比较容易了,我们的Order是先allow后deny,那么deny具有最终决定权,即在allow说通过之后各个访客还需要进行拒绝检查,发现219.204.253.8这台主机是不满足的,那么进行拒绝。案例4可以用同样的方法进行分析。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Apache配置文件中的deny和allow的使用由于产品的需要,最近在配置apache的负载均衡功能,但是在配置虚拟主机的访问权限的时候我们遇到了一些问题。主
etc/bootparams从网络客户机的配置文件/etc/cron.d/cron.allow/etc/cron.d/cron.deny用于对crontab进行
1.Apache配置系统从整体来看apache的配置系统包括三个部分:(1)配置文件:比如httpd.conf.htaccess(2)配置指令:在配置文件htt
可以在apache的httpd.conf配置文件中配置apache自带的程序rotatelogs的功能。rotatelogs是一个配合Apache管道日志功能使
apache2(也叫httpd):很多使用web的软件需要配置apache。apache2的配置文件主要下面两个路径中的一个:/etc/apache2/apac