Apache配置文件中的deny和allow的使用


 

Apache配置文件中的deny和allow的使用

    由於產品的需要,最近在配置apache的負載均衡功能,但是在配置虛擬主機的訪問權限的時候我們遇到了一些問題。主要問題是deny和allow的執行順序,抽時間研究了下這兩個參數的使用,現把deny和allow的使用情況總結如下。

一、   使用情況總結

我們來看下下面的apache的一個配置,具體代碼如下:

 

<Directory "D:/TRS/Apache2.2.17/cgi-bin">

    Order allow,deny  #1

    Allow from all #2

    deny from 192.9.200.69 #3

</Directory>

 

以前使用這兩個參數的時候比較混亂,具體不太清楚到底是哪個參數在起作用。通過實驗,我們可以總結下規律,具體規律如下:

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請求訪問目錄

 

<Directory "D:/TRS/Apache2.2.17/cgi-bin">

   Order deny,allow #1.默認允許全部請求

Allow from 192.9.200.69 #3.重疊,允許IP192.9.200.69的請求

deny from all #2.按照順序,先判斷deny規則,拒絕所有請求

</Directory>

 

 

2.  允許所有請求訪問目錄

 

<Directory "D:/TRS/Apache2.2.17/cgi-bin">

Order deny,allow #1.默認允許全部請求

Allow from all #3.重疊,允許所有請求

deny from 192.9.200.69 #2.按照順序,先判斷deny規則,拒絕192.9.200.69的請求

</Directory>

 

 

3.  拒絕所有請求訪問目錄

 

<Directory "D:/TRS/Apache2.2.17/cgi-bin">

Order allow,deny #1.默認拒絕全部請求

Allow from 192.9.200.69 #2.順序,允許 192.9.200.69請求

deny from  all#3.重疊,拒絕所有請求

</Directory>

 

 

4.  除了192.9.200.69的請求外,其他請求都可以訪問目錄

 

<Directory "D:/TRS/Apache2.2.17/cgi-bin">

Order allow,deny #1.默認拒絕全部請求

deny from  192.9.200.69#3.重疊,拒絕192.9.200.69請求

Allow from all #2.順序,允許所有請求

</Directory>

 

 轉自:http://blog.csdn.net/wgw335363240/article/details/6362418


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM