Apache Web服務器資源使用限制配置
3.4.3 Apache Web服務器資源使用限制配置 “資源使用限制”就是要限制用戶對網站特定資源(如目錄、服務器硬件等)的訪問。相關指令包括:LimitRequestBody、LimitRequestFields、LimitRequestFieldSize、LimitRequestLine、RLimitCPU、RLimitMEM、RLimitNPROC和ThreadStackSize。 LimitRequest*系列指令用來限制Apache在讀取客戶端請求的過程中使用的資源數量。通過限制這些值,可以減輕某些拒絕服務(DOS)攻擊;RLimit*系列指令限制被Apache子進程所派生的進程使用的資源數量,通常這些指令用來控制CGI腳本和SSI exec命令所使用的資源;ThreadStackSize指令在某些平臺上用來控制堆棧大小。 1.LimitRequestBody LimitRequestBody指令限制客戶端發送的HTTP請求體的最大字節長度。其語法格式為:LimitRequestBody Bytes,Bytes在0(意味著無限制)到2 147 483 647(2GB)間限制了請求體所允許的字節數。默認值為“0”。 LimitRequestBody指令可以讓用戶在其作用范圍內(整個服務器、特定目錄、特定文件、特定位置)設置一個允許客戶端發送的HTTP請求體的最大字節長度的限制。如果客戶端的請求超出了這個限制,服務器會回應一個錯誤,而不是為這個請求繼續提供服務。一個普通請求的信息體在很大程度上取決于資源的自然屬性和這個資源允許的方法。CGI腳本經常用消息體把表單的信息傳遞給服務器。使用PUT方法至少能夠得到與服務器期望從這個資源得到的信息量差不多大小的值。此指令給了服務器管理員更大的可控性,以控制客戶端不正常的請求行為。這有助于避免某些形式的拒絕服務攻擊。比如,如果允許文件上傳到某個位置,而且希望能將上傳文件的大小設置為100KB,可以使用下面的指令: LimitRequestBody 102400 2.LimitRequestFields LimitRequestFields用來限制接受客戶端請求中HTTP請求頭域的數量。其語法格式為:LimitRequestFields Number,Number是一個0(意味著不限)到32 767之間的整數。默認值為“100”。默認值為編譯時的常量DEFAULT_LIMIT_REQUEST_FIELDS(發布值為100)。 LimitRequestFields指令允許服務器管理員修改在一個HTTP請求中的請求頭域的數量限制。服務器需要此值大于一個普通客戶端請求中包含頭域的數量。一個客戶端請求頭域的數量很少大于20,但根據客戶端的不同這個數字有很大的差別,經常取決于用戶配置他們的瀏覽器擴展以支持更詳細的內容協商。可選的HTTP擴展經常使用請求頭域來實現。這個指令給了服務器管理員更大的可控性,以控制客戶端不正常的請求行為。這有助于避免某些形式的拒絕服務攻擊。如果正常使用的客戶端得到了服務器的錯誤應答,指出其在請求中發送了過多的頭域,你應該適當地增大此值。例如: LimitRequestFields 50 3.LimitRequestFieldSize LimitRequestFieldSize指令用來限制客戶端發送的請求頭的字節數。其語法格式為:LimitRequestFieldsize Bytes,Bytes指定了HTTP請求頭允許的字節大小。默認值為“8190”。 LimitRequestFieldSize指令允許服務器管理員增加,或減少HTTP請求頭域大小的限制。一般來說,服務器需要此值足夠大,以適應普通客戶端的任何請求的頭域大小。一個普通頭域的大小對于不同的客戶端來說是有很大差別的,一般與用戶配置他們的瀏覽器以支持更多的內容協議密切相關。這個指令給了服務器管理員更大的可控性,以控制客戶端不正常的請求行為。這有助于避免某些形式的拒絕服務攻擊。例如: LimitRequestFieldSize 4094 一般情況下,請不要改變這個設置,而是保持其默認設置。 4.LimitRequestLine LimitRequestLine指令用來限制接收客戶端發送的HTTP請求行的字節數。其語法格式為:LimitRequestLine Bytes,Bytes將設置HTTP請求行的字節數限制。默認值也為“8190”。 LimitRequestLine指令允許服務器管理員增加或減少客戶端HTTP請求行允許大小的限制。因為請求行包括HTTP方法、URI、協議版本,所以LimitRequestLine指令會限制請求URI的長度。服務器會需要這個值足夠大以裝載它所有的資源名,包括可能在GET請求中所傳遞的查詢部分的所有信息。這個指令也給了服務器管理員更大的可控性,以控制客戶端不正常的請求行為。這有助于避免某些形式的拒絕服務攻擊。例如: LimitRequestLine 4094 一般情況下,不需要改變此設置的默認值。 5.RLimitCPU RLimitCPU指令用來限制Apache子進程派生的進程占用CPU的最大秒數。CPU資源限制表示為每進程占用的秒數。其語法格式為:RLimitCPU seconds|max [seconds|max],默認值未定義,使用操作系統默認值。第一個參數設置了所有進程的軟資源限制,第二個參數設置了最大資源限制。兩個參數均可設置為一個數值,或是“max”,以表示設置為操作系統允許的最大值。增大此資源限制最大值需要以root運行服務器或是在初始化啟動語句中進行設置。這< 新文章:
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833 中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1 網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003 |