您的位置: 站云中國 ? 云主機 ? 云服務器Apache服務器全局配置之資源限制配置篇
云服務器Apache服務器全局配置之資源限制配置篇
2014-10-26 14:16 站云中國
Apache服務器全局配置之資源限制配置篇
 
本文摘錄自Apache2.2手冊
 
資源限制相關指令:
LimitRequestBody
LimitRequestFields
LimitRequestFieldsize
LimitRequestLine
RLimitCPU
RLimitMEM
RLimitNPROC
ThreadStackSize
 
LimitRequest*系列指令用來限制Apache在讀取客戶端請求的過程中使用的資源數量。通過限制這些值,可以減輕某些拒絕服務(DOS)攻擊。
 
RLimit*系列指令用來限制Apache子進程所派生的進程使用的資源數量。通常,這些指令用來控制CGI腳本和SSI exec命令所使用的資源。
 
ThreadStackSize指令在某些平臺上用來控制堆棧大小。
 
LimitRequestBody指令
語法:LimitRequestBody bytes
默認值:LimitRequestBody 0
這個指令用來設置客戶端發送的HTTP請求的最大字節數。LimitRequestBody指令可以作用于整個服務器、特定目錄、特定文件、特定位置。如果客戶端的請求超出了LimitRequestBody設置的值,那么服務器會回應一個錯誤信息給客戶端,而不會去處理這個請求。
Bytes在0(不限制)到2147483647(2GB)之間。
比如:你允許客戶端將文件上傳到某個位置,并且希望將上傳文件的大小限制為500K,
LimitRequestBody 512000
 
LimitRequestFields指令
語法:LimitRequestFields number
默認:LimitRequestFields 100
這個指令用來設置客戶端向服務器請求中HTTP請求頭域的數量。一般一個客戶端請求頭域的數量很少大于20,但是客戶端的不同這個數字也將有很大的差異。這個經常取決于用戶配置他們的瀏覽器擴展以支持更詳細的內容協商。可選的HTTP擴展經常使用請求頭域來實現。
number是一個0(不限制)到32767之間的整數。默認值為編譯時的常量DEFAULT_LIMIT_REQUEST_FIELDS(發布值為100)。
 
LimitRequestFieldsize指令
語法:LimitRequestFieldsize bytes
默認:LimitRequestFieldsize 8190
這個指令用來設置客戶端發送的HTTP請求頭的最大字節數。一般來說,服務器需要此值夠大,以適應普通客戶的的任何請求的頭域大小。頭域的大小一般與瀏覽器支持的內容協議有密切關系。
一般情況下,不要更改這個值,使用默認即可。
 
LimitRequestLine指令
語法:LimitRequestLine bytes
默認:LimitRequestLine 8190
這個指令用來設置客戶端發送的HTTP請求行的最大字節數。請求行包括HTTP方法、URL、協議版本等。因此LimitRequestLine指令能夠限制URL的長度,服務器會需要這個值足夠大以裝載它所有的資源名,包括可能在GET請求中所傳遞的查詢部分的所有信息。
一般情況下,不要更改這個值,使用默認即可。
 
RLimitCPU指令
語法:RLimitCPU seconds | max [seconds|max]
默認:未定義,使用操作系統默認值
這個指令用來設置Apache子進程派生的進程占用CPU的最大秒數。
這里可以設置一個或者兩個參數。第一個參數設置所有進程的軟資源限制,第二個參數設置最大資源限制。兩個參數均可設置為一個數值或者是“max”(表示設置為操作系統允許的最大值)。要增大此資源限制最大值需要以root運行服務器或是在初始化啟動語句中進行設置。
這個指令只作用于Apache子進程所派生的進程,而不是Apache子進程本身。這個范圍包括CGI腳本和SSI執行命令,不包括所有從Apache父進程派生出的進程。比如管道日志。
CPU資源限制表示每進程占用的秒數。
 
RLimitMEM指令
語法:RLimitMEM bytes | max [bytes|max]
默認:未定義,使用操作系統默認值
這個指令用來設置Apache子進程派生的進程占用內存的最大字節數。
這里可以設置一個或者兩個參數。第一個參數設置所有進程的軟資源限制,第二個參數設置最大資源限制。兩個參數均可設置為一個數值或者是“max”(表示設置為操作系統允許的最大值)。要增大此資源限制最大值需要以root運行服務器或是在初始化啟動語句中進行設置。
這個指令只作用于Apache子進程所派生的進程,而不是Apache子進程本身。這個范圍包括CGI腳本和SSI執行命令,不包括所有從Apache父進程派生出的進程。比如管道日志。
內存資源限制表示為每進程占用的字節數。
 
RLimitNPROC指令
語法:RLimitNPROC number | max [number|max]
默認:未定義,使用操作系統默認值
這個指令用來設置Apache子進程派生的進程數目。
這里可以設置一個或者兩個參數。第一個參數設置所有進程的軟資源限制,第二個參數設置最大資源限制。兩個參數均可設置為一個數值或者是“max”(表示設置為操作系統允許的最大值)。要增大此資源限制最大值需要以root運行服務器或是在初始化啟動語句中進行設置。
這個指令只作用于Apache子進程所派生的進程,而不是Apache子進程本身。這個范圍包括CGI腳本和SSI執行命令,不包括所有從Apache父進程派生出的進程。比如管道日志。
進程限制控制了每個用戶的進程數。
 
ThreadStackSize指令
語法:ThreadStackSize size
默認:NetWare上為65536,其他平臺上等于操作系統默認值
這個指令用來設置處理客戶端連接(包括調用模塊以協助處理)的線程允許使用的最大棧尺寸(字節)。
大多數情況下,操作系統默認的棧尺寸很合理。但是在某些情況下,需要調整這個值:
在默認棧尺寸較小的平臺上(比如HP-UX),Apache可能會在使用一些需要較大棧尺寸的第三方模塊時崩潰。這樣的問題可以通過將ThreadStackSize設置為一個較大的值來解決。這種調整應當僅僅在第三方模塊提供者明確要求的情況下才需要,或者是您通過診斷確定是由于棧空間太小而導致崩潰。
在某些平臺上,如果默認的棧空間大于服務器運行所需空間,那么將ThreadStackSize值降低到小于操作系統默認值可以讓每個進程中允許生成的最大線程數量增加。這種類型的調整應該僅在測試環境中使用,并且對所有服務器進程進行充分的測試,因為處理某些罕見的請求需要較大的棧空間。一個很小的服務器配置變化就有可能使得當前的ThreadStackSize設置變得不合適。
 
捕鱼大师游戏 北京pk10计划微信群 今晚那3码中特 单双大小不输方法技巧 u米娱乐怎么样 河北时时11选五 新畺时时彩三星和值 创富精英3肖6码主论坛 北京时时开奖 重庆龙虎和走势图计划 国际娱乐棋牌 二八杠棋牌 创富精英网站3肖6码 捕鱼游戏注册送10元 11选5怎样玩才能赚钱 pk10刷流水套利论坛 北京pk10app平台