Linux下Apache併發連線數和頻寬控制

2021-04-13 11:14:13 字數 2509 閱讀 9591

一、使用mod_limitipconn限制apache的併發連線數

mod_limitipconn for apache 1.3x提供三種安裝方式,分別是tar包、rpm安裝檔案和rpm原始檔,由於rpm包只能用在 redhat 7.x 版本,並且不支援檢測**伺服器,所以我們一般都使用tar包的安裝方式。

通過命令whereis apxs,我們可以確定apxs命令的路徑,如我的apxs命令所在為/usr/sbin/apxs,則輸入/usr/sbin/apxs -c -i -a mod_limitipconn.c對mod_limitipconn.c進行編譯,此命令會自動在你apache的配置檔案httpd.conf中加入需要的資訊,並且將生成的mod_limitipconn.so模組拷貝到apache的模組目錄。不過為了確認此命令是否正常運作,請首先檢查自己的apache模組目錄(我的是/usr/lib/apache),看內部是否含有mod_limitipconn.so檔案,沒有的話請將mod_limitipconn-0.04目錄中生成的檔案拷貝到此處。

剛才命令自動生成的httpd.conf可能有些錯誤,在我的系統中,它將loadmodule limitipconn_module modules/mod_limitipconn.so放在了

loadmodule python_module modules/mod_python.so

之間,而將addmodule mod_limitipconn.c放在了

addmodule mod_python.c

之間,直接造成了mod_limitipconn模組不能正常執行,所以請將這兩行分別移動到沒有的相應行中,然後請確認mod_status模組已經載入,並且在mod_status下新增了extendedstatus on這一行。這時我們的mod_limitipconn模組就安裝完畢,下一步就是對某個目錄進行併發連線數的設定了。

mod_limitipconn可以對全域性和虛擬主機進行不同的限制,其語法結構都是

#所限制的目錄所在,此處表示主機的根目錄

maxconnperip 3 #所限制的每個ip併發連線數為3個

noiplimit image/* #對不做ip限制

#所限制的目錄所在,此處表示主機的/***目錄

maxconnperip 1 #所限制的每個ip併發連線數為1個

當對全域性進行限制時,將這段**放在httpd.conf檔案沒有virtualhost的地方,若是對某個虛擬主機進行限制,請將其放在和之間,我們可以通過更改location以及maxconnperip方便的控制所限制的目錄和併發連線數。

最後,只要重新啟動apache服務,併發連線數的限制就可以生效。

二、使用mod_bandwidth控制apache的頻寬

loadmodule bandwidth_module modules/mod_bandwidth.so

以及

addmodule mod_bandwidth.c

若是沒有,**上

loadmodule bandwidth_module

libexec/apache/mod_bandwidth.so

addmodule mod_bandwidth.c

並且這兩行必須分別加在相應區域的最前面,使得這個模組以最低的優先順序執行。(不過1.3.7的apache應該有,呵呵)。

mod_bandwidth執行時需要一些特定的目錄,按照預設情況,請執行以下命令建立並更改目錄的許可權:

mkdir /tmp/apachebw

mkdir /tmp/apachebw/link

mkdir /tmp/apachebw/master

chmod -r 777 /tmp/apachebw

然後再開啟httpd.conf檔案,加上以下內容

bandwidthdatadir "/tmp/apachebw/"

bandwidthmodule on

bandwidth all 327680 #來自其它網段的速度都限制為327680byte,即30kb/s

設定完畢後,重新啟動apache服務,即可生效。

mod_bandwidth還有許多其它有用的引數,如在

中間加上maxconnection 120則可以限制某個目錄的最多連線數,當超過指定連線數時,拒絕新的連線,此引數與mod_limitipconn模組結合可以控制某個目錄的最多連線人數。

apache的功能確實強大,很多功能都可以通過新增模組來實現,在 http://modules.apache.org/ 可以找到更多的模組,我們也可以編寫自己的模組來實現相應的功能。

Linux下Apache併發連線數和頻寬控制

一 使用mod limitipconn限制apache的併發連線數 mod limitipconn for apache 1.3x提供三種安裝方式,分別是tar包 rpm安裝檔案和rpm原始檔,由於rpm包只能用在 redhat 7.x 版本,並且不支援檢測 伺服器,所以我們一般都使用tar包的安裝...

Linux下Apache併發連線數和頻寬控制

linux下apache併發連線數和頻寬控制 由於本人使用apache 1.3.9 版本.mod limitipconn for apache 1.3x提供三種安裝方式,分別是tar包 rpm安裝檔案和rpm原始檔,由於rpm包只能用在 redhat 7.x 版本,並且不支援檢測 伺服器,所以我們一...

Linux下Apache併發連線數和頻寬控制

一 使用mod limitipconn限制apache的併發連線數 mod limitipconn for apache 1.3x提供三種安裝方式,分別是tar包 rpm安裝檔案和rpm原始檔,由於rpm包只能用在 redhat 7.x 版本,並且不支援檢測 伺服器,所以我們一般都使用tar包的安裝...