欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


linux怎么让让垃圾文件自己消失?
搜狐视频无法正常播放怎么办
优酷客户端如何停止当前播放视频?
更改Win8.1中Skydrive 的存储位置
优酷客户端如何在播放中切换下一集内容?
Ubuntu如何配置网桥 Ubuntu系统配置网桥详细教程
优酷客户端如何跳过片头片尾?
Win8.1切换本地账户详细教程
Ubuntu下超实用的命令
优酷客户端如何将下载好的文件拷贝到别的电脑上
Apache配置参数deny和allow的使用实例
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   这篇文章主要介绍了Apache配置参数deny和allow的使用实例,需要的朋友可以参考下

  由于产品的需要,最近在配置apache的负载均衡功能,但是在配置虚拟主机的访问权限的时候我们遇到了一些问题。主要问题是deny和allow的执行顺序,抽时间研究了下这两个参数的使用,现把deny和allow的使用情况总结如下。

  一、使用情况总结

  我们来看下下面的apache的一个配置,具体代码如下:

  代码如下:

  

  Order allow,deny #1

  Allow from all #2

  deny from 192.9.200.69 #3

  

  以前使用这两个参数的时候比较混乱,具体不太清楚到底是哪个参数在起作用。通过实验,我们可以总结下规律,具体规律如下:

  1. 规律

  当我们看到一个apache的配置时,可以从下面的角度来理解。一默认,二顺序,三重叠。

  2. 上面配置说明

  [1] 一默认

  Order allow,deny ,这句话的作用是配置allow和deny的顺序,默认只有最后一个关键字起作用,这里起作用的关键字就是“deny”,默认拒绝所有请求。为了便于理解,我们可以画一个圆,圆的背景色涂上黑色,我们给这个圆起个编号,叫圆1。

  [2] 二顺序

  由于上边的Order指出判断的顺序是先判断allow的规则,然后才是deny的规则。所以我们要先判断allow的请求,由于该请求中配置的是allow from all,

  所以表示该请求允许所有请求。这时我们再画一个圆,背景色涂上白色,我们给圆起个编号,叫圆2。

  我们再来看deny的判断规则,由于 deny from 192.9.200.69 ,表示拒绝来自ip地址为“192.9.200.69”,所以我们可以画出一块红色区域,表示“192.9.200.69”,我们把这块区域叫区域3。

  注意:即使把“Allow from all”写在“deny from 192.9.200.69”下面,依然是需要先判断allow规则,也就是说只有Order才能决定allow和order的优先顺序。

  [3] 三重叠

  我们把上边产生的圆1、圆2和区域3依次从下往上堆叠在一起。每个层都是不透明的,这时我们可以看到最终效果是除了“192.9.200.69”这块红色区域外,其他的所有都是白色区域。也就是只有“192.9.200.69”这个ip地址没有权限访问该目录,其他的请求都有权限访问该目录。

  二、看看下面的例子

  也许上边没有说明白,我们再来看下面的例子,每个配置后面都有简单的说明,配置文件中的“#”号后边的数字表示配置项起作用的先后顺序。

  1. 只允许192.9.200.69请求访问目录

  代码如下:

  

  Order deny,allow #1.默认允许全部请求

  deny from all #2.按照顺序,先判断deny规则,拒绝所有请求

  Allow from 192.9.200.69 #3.重叠,允许IP192.9.200.69的请求

  

  2. 允许所有请求访问目录

  代码如下:

  

  Order deny,allow #1.默认允许全部请求

  deny from 192.9.200.69 #2.按照顺序,先判断deny规则,拒绝192.9.200.69的请求

  Allow from all #3.重叠,允许所有请求

  

  3. 拒绝所有请求访问目录

  代码如下:

  

  Order allow,deny #1.默认拒绝全部请求

  Allow from 192.9.200.69 #2.顺序,允许 192.9.200.69请求

  deny from all#3.重叠,拒绝所有请求

  

  4. 除了192.9.200.69的请求外,其他请求都可以访问目录

   代码如下:

  

  Order allow,deny #1.默认拒绝全部请求

  Allow from all #2.顺序,允许所有请求

  deny from 192.9.200.69#3.重叠,拒绝192.9.200.69请求

  

  Allow和Deny可以用于apache的conf文件或者.htaccess文件中(配合Directory, Location, Files等),用来控制目录和文件的访问授权。

  所以,最常用的是:

   代码如下:

  Order Deny,Allow

  Allow from All

  注意“Deny,Allow”中间只有一个逗号,也只能有一个逗号,有空格都会出错;单词的大小写不限。上面设定的含义是先设定“先检查禁止设定,没有禁止的全部允许”,而第二句没有Deny,也就是没有禁止访问的设定,直接就是允许所有访问了。这个主要是用来确保或者覆盖上级目录的设置,开放所有内容的访问权。

  按照上面的解释,下面的设定是无条件禁止访问:

   代码如下:

  Order Allow,Deny

  Deny from All

  如果要禁止部分内容的访问,其他的全部开放:

   代码如下:

  Order Deny,Allow

  Deny from ip1 ip2

  或者

  代码如下:

  Order Allow,Deny

  Allow from all

  Deny from ip1 ip2

  apache会按照order决定最后使用哪一条规则,比如上面的第二种方式,虽然第二句allow允许了访问,但由于在order中allow不是最后规则,因此还需要看有没有deny规则,于是到了第三句,符合ip1和ip2的访问就被禁止了。注意,order决定的“最后”规则非常重要,下面是两个错误的例子和改正方式:

  代码如下:

  Order Deny,Allow

  Allow from all

  Deny from domain.org

  错误:想禁止来自domain.org的访问,但是deny不是最后规则,apache在处理到第二句allow的时候就已经匹配成功,根本就不会去看第三句。

  解决方法:Order Allow,Deny,后面两句不动,即可。

   代码如下:

  Order Allow,Deny

  Allow from ip1

  Deny from all

  错误:想只允许来自ip1的访问,但是,虽然第二句中设定了allow规则,由于order中deny在后,所以会以第三句deny为准,而第三句的范围中又明显包含了ip1(all include ip1),所以所有的访问都被禁止了。

  解决方法一:直接去掉第三句。

  解决方法二:

  复制代码 代码如下:

  Order Deny,Allow

  Deny from all

  Allow from ip1

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站