Linux下apache如何限制并发连接和下载速度
mod_limitipconn,这个是Apache的一个非官方模块,根据同一个来源IP进行并发连接控制,Bw_mod,它可以根据来源IP进行带宽限制,它们都是apache的第三方模块。
1.下载:
wgethttp://dominia.org/djao/limit/mod_limitipconn-0.22.tar.gz
wgethttp://bwmod.sourceforge.net/files/mod_bw-0.7.tgz
2.安装
#tar-zxvfmod_limitipconn-0.22.tar.gz
#cdmod_limitipconn-0.22
#viMakefile
修改:apxs=“/usr/local/apache2/bin/apxs”#这里是自己apache的apxs路径,加载模块
或者
#/usr/local/apache2/bin/apxs-i-c-amod_limitipconn.c 来加载模块
#make
#makeinstall
#tar-xvfmod_bw-0.7.tgz
#cdmod_bw
#/usr/local/apache2/bin/apxs-i-c-a/home/kenami/mod_bw/mod_bw.c
下面用vi打开apache的配置文件httpd.conf
发现了以下两行:
LoadModulelimitipconn_modulemodules/mod_limitipconn.so
LoadModulebw_module modules/mod_bw.so
3.配置
<IfModulemod_limitipconn.c>
<Location/home/bo@jb51.net/attachments/month_*>#需要控制的路径
MaxConnPerIP3#限制的线程数
NoIPLimitindex.htm#对此文件不做限制
</Location>
</IfModule>
在虚拟主机配置文件下面加上:
BandwidthModuleOn
ForceBandWidthModuleOn
Bandwidthall10000#限速10K
MinBandwidthall-1
配置参数说明如下:
a. BandWidthModule On|Off
//是否开启mod_bw的带宽限制功能。
b. BandWidth [From] [bytes/s]
设置指定客户机最大带宽,0表示不限制
BandWidthu:[User-Agent][bytes/s]
c. MinBandWidth [From] [bytes/s]
设置指定客户机带宽的最小值,为0表示每个客户端带宽最大为256bytes/s,为-1表示最大为BandWith的值
d. LargeFileLimit [Type] [MinimumSize] [bytes/s]
设置访问超出特定大小的某种文件的最大带宽,文件类型大小单位为kbytes
e. MaxConnection[From][Max]
设置指定客户机的最大并发连接数
f. ForceBandWidthModule[On|Off]
默认bw模块将应用所有请求,On可设置过滤类型
关于From,即客户端来源可分以下几种情况:
IP指定单一主机
192.168.1.22
指定网段
192.168.1.0/24或
192.168.1.0/255.255.255.0
域名单一主机
Client1.jb51.net
域名指定范围
.jb51.net
所有客户端
all
以上配置既可以针对所有客户端,也可以对某个虚拟主机进行配置
实例一:
BandWidthModuleOn
BandWidthall307200
BandWidth192.168.1.2102400
BandWidth“u:^Mozilla/5(.*)”102400
BandWidth“u:wget”204800
ForceBandWidthModuleOn
LargeFileLimit.avi600204800
MaxConnectionall100
MaxConnnection192.168.1.25
以上的配置含义:
开启mod_bw,限制所有文件类型也开启了
所有客户端最大带宽为300k,最大并发连接为100
192.168.1.2的最大带宽为100k,最大并发连接为5
使用FireFox的客户端最大带宽为100k
使用wget的客户端最大带宽为200k
对超过600k的avi格式的文件最大带宽为200kbyte/s
实例二:
<Virtualhost*>
BandwidthModuleOn
ForceBandWidthModuleOn
LargeFileLimit.avi120000
LargeFileLimit.mpg120000
Servernamewww.nhooo.com
</Virtualhost>
该实例对虚拟主机进行了限制,指定的文件类型avi和mpg最大带宽为20K,ForceBandWidthModuleOn必须有。
实例三:
<Virtualhost*>
BandwidthModuleOn
AddOutputFilterByTypeMOD_BWtext/htmltext/plain
Bandwidthall5000
Servernamewww.nhooo.com
</Virtualhost>