微軟最近對 windows azure **進行了公升級,並啟用了iis8的動態 ip 限制模組。現在,開發人員可以為其**啟用並配置動態 ip 限制功能(或簡稱 dipr)。
dipr 功能主要為開發人員提供兩種保護:
· 根據併發請求數阻止 ip 位址
· 根據某一時段的請求數阻止 ip 位址
此外,開發人員還可以配置 dipr 的行為,例如,針對被阻止的請求, 發回的http 狀態**的型別。
在 azure **中,開發人員可以使用新增到 web.config 檔案(位於該**的根資料夾)中的配置部分來配置 dipr。
如果您要根據併發請求數(即任意時刻正在發出的活動請求數)來阻止連線,請向該**的 web.config 檔案新增以下配置段。
如果在 denybyconcurrentrequests 元素中將enabled 屬性設定為true,則在最多併發請求數超過maxconcurrentrequests 屬性中設定的值(在以上示例中設定為 10)時,iis 將自動開始阻止該 ip 位址的請求。
另一方面,如果您要根據特定時間視窗內發出的請求總數阻止連線,則可以使用以下配置段:
在以上示例中,如果在 denybyrequestrate 元素中將enabled 屬性設定為true,則會指示 iis 在requestintervalinmilliseconds 定義的時間視窗(在此示例中設定為 2000 毫秒)內觀察到的請求總數超過maxrequests 屬性中設定的值(在此示例中設定為 10)時阻止該 ip 位址的請求。因此,在 2 秒的時間段內發出 10 個以上請求的客戶端將被阻止。
最後,開發人員還可以選擇同時啟用這兩種阻止機制。以下**段既可指示 dipr 阻止併發請求數超過 10 個的客戶端,也可指示 dipr 阻止在 5 秒時間視窗內總共發出 20 個以上請求的客戶端:
在 dipr 阻止某個 ip 位址後,該位址會一直保持阻止狀態,直到當前時間視窗結束為止,之後,該 ip 位址將再次能夠向該**發出請求。例如,如果requestintervalinmilliseconds 設定為 5000(5 秒),而某個 ip 位址在 2 秒刻度處被阻止,則該位址在剩下 3 秒(即,當前時間視窗內的剩餘時間)內會一直保持阻止狀態。
開發人員可以自定義客戶端被阻止時返回的錯誤,方法為配置 dynamicipsecurity元素自身的 denyaction 屬性。denyaction 的允許值包括:
· abortrequest(返回 http 狀態** 0)
· unauthorized(返回 http 狀態** 401)
· forbidden(返回 http 狀態** 403)。請注意,這是預設設定。
· notfound(返回 http 狀態** 404)
例如,如果您要傳送 404 狀態**,而不是傳送預設**(即 forbidden 403),則可使用以下配置:
這裡,我們會遇到這樣乙個問題:在 azure **中執行時,dipr 會看到什麼 ip 位址?在 windows azure 中執行意味著 web 應用程式正在使用多種負載平衡器。也就是說,呈現給該**的客戶端 ip 位址可能是上游負載平衡器的位址,而不是 internet 上實際客戶端的位址。但是,azure **將為您自動執行必要的轉換,確保 dipr 模組「看到的」客戶端 ip 位址是發出 http 請求的 internet 客戶端的實際 ip 位址。
Azure上如何在Linux下掛載資料磁碟
在azure azure linux 的虛擬機器上新增資料磁碟並初始化 登陸azure 的管理介面,並建立虛擬機器,本文使用 centos 6.5作為示例作業系統,其他 linux 作業系統類似 我們先使用 ssh登入到改 linux 作業系統,檢查下當前系統的磁碟狀態 我們可以看到,目前的 lin...
如何在Mac pro上配置adb命令
啟動終端,可以在spotlight中搜尋 終端 進入當前使用者的home目錄,命令如下 cd home 更新.bash profile檔案 當該檔案存在時 如果該檔案不存在,可通過如下命令建立 touch bash profile 開啟.bash profile檔案,對其內容進行編輯,命令如下 op...
如何在Macbook上配置Apache虛擬主機
開啟終端,輸入命令 sudo su 輸入密碼後切換到root許可權 將include private etc apache2 extra httpd vhosts.conf這行前的注釋符號 去掉。在httpd vhosts.conf 中新增以下內容 重啟apache,輸入命令 新增如下內容 127....