Linux下apache如何限制并發(fā)連接和下載速度
mod_limitipconn,這個是Apache的一個非官方模塊,根據(jù)同一個來源IP進行并發(fā)連接控制,Bw_mod,它可以根據(jù)來源IP進行帶寬限制,它們都是apache的第三方模塊。
1.下載:
wget http://dominia.org/djao/limit/mod_limitipconn-0.22.tar.gz
wget http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz
2.安裝
#tar -zxvf mod_limitipconn-0.22.tar.gz
#cd mod_limitipconn-0.22
#vi Makefile
修改:apxs = “/usr/local/apache2/bin/apxs” # 這里是自己apache的apxs路徑,加載模塊
或者
#/usr/local/apache2/bin/apxs -i -c -a mod_limitipconn.c 來加載模塊
#make
#make install
#tar -xvf mod_bw-0.7.tgz
#cd mod_bw
#/usr/local/apache2/bin/apxs -i -c -a /home/kenami/mod_bw/mod_bw.c
下面用vi打開apache 的配置文件 httpd.conf
發(fā)現(xiàn)了以下兩行:
LoadModule limitipconn_module modules/mod_limitipconn.so
LoadModule bw_module modules/mod_bw.so
3.配置
<IfModule mod_limitipconn.c>
<Location /home/bo@jb51.net/attachments/month _*> #需要控制的路徑
MaxConnPerIP 3 #限制的線程數(shù)
NoIPLimit index.htm #對此文件不做限制
</Location>
</IfModule>
在虛擬主機配置文件下面加上:
BandwidthModule On
ForceBandWidthModule On
Bandwidth all 10000 #限速10K
MinBandwidth all -1
配置參數(shù)說明如下:
a. BandWidthModule On|Off
//是否開啟mod_bw的帶寬限制功能。
b. BandWidth [From] [bytes/s]
設置指定客戶機最大帶寬,0表示不限制
BandWidth u:[User-Agent] [bytes/s]
c. MinBandWidth [From] [bytes/s]
設置指定客戶機帶寬的最小值,為0表示每個客戶端帶寬最大為256bytes/s,為-1表示最大為BandWith的值
d. LargeFileLimit [Type] [Minimum Size] [bytes/s]
設置訪問超出特定大小的某種文件的最大帶寬,文件類型大小單位為kbytes
e. MaxConnection [From] [Max]
設置指定客戶機的最大并發(fā)連接數(shù)
f. ForceBandWidthModule [On|Off]
默認bw模塊將應用所有請求,On可設置過濾類型
關于From,即客戶端來源可分以下幾種情況:
IP指定單一主機
192.168.1.22
指定網(wǎng)段
192.168.1.0/24或
192.168.1.0/255.255.255.0
域名單一主機
Client1.jb51.net
域名指定范圍
.jb51.net
所有客戶端
all
以上配置既可以針對所有客戶端,也可以對某個虛擬主機進行配置
實例一:
BandWidthModule On
BandWidth all 307200
BandWidth 192.168.1.2 102400
BandWidth “u:^Mozilla/5(.*)” 102400
BandWidth “u:wget” 204800
ForceBandWidthModule On
LargeFileLimit .avi 600 204800
MaxConnection all 100
MaxConnnection 192.168.1.2 5
以上的配置含義:
開啟mod_bw, 限制所有文件類型也開啟了
所有客戶端最大帶寬為300k,最大并發(fā)連接為100
192.168.1.2的最大帶寬為100k,最大并發(fā)連接為5
使用FireFox的客戶端最大帶寬為100k
使用wget的客戶端最大帶寬為200k
對超過600k的avi格式的文件最大帶寬為200kbyte/s
實例二:
<Virtualhost *>
BandwidthModule On
ForceBandWidthModule On
LargeFileLimit .avi 1 20000
LargeFileLimit .mpg 1 20000
Servername www.dbjr.com.cn
</Virtualhost>
該實例對虛擬主機進行了限制,指定的文件類型avi和mpg最大帶寬為20K,ForceBandWidthModule On必須有。
實例三:
<Virtualhost *>
BandwidthModule On
AddOutputFilterByType MOD_BW text/html text/plain
Bandwidth all 5000
Servername www.dbjr.com.cn
</Virtualhost>
相關文章
如何在CentOS8上安裝和配置Postfix郵件服務器的方法示例
這篇文章主要介紹了如何在CentOS8上安裝和配置Postfix郵件服務器的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11Shell 數(shù)組與關聯(lián)數(shù)組詳解及實例代碼
這篇文章主要介紹了 Shell 數(shù)組與關聯(lián)數(shù)組詳解及實例代碼的相關資料,需要的朋友可以參考下2017-01-01詳解ubuntu 16.04 LTS 降級安裝gcc 4.8
本篇文章主要介紹了ubuntu 16.04 LTS 降級安裝gcc 4.8 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04CentOs 7.3中搭建RabbitMQ 3.6單機多實例服務的步驟與使用
這篇文章主要給大家介紹了關于CentOs 7.3中搭建RabbitMQ 3.6單機多實例服務的步驟與使用的相關資料,文中將實現(xiàn)的方法介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友下面來一起看看吧。2018-03-03