mod_bw 和 mod_limitipconn ;分别是限速和限制IP连接数的模块。
安装mod_bw 和 mod_limitipconn 都非常简单。
1、下载:
wget
wget
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
发现了以下两行:
LoadModule limitipconn_module modules/mod_limitipconn.so
LoadModule bw_module modules/mod_bw.so
说明这两个模块安装成功
以下在httpd.conf 配置这两个模块,我的配置如下:
#需要控制的路径
MaxConnPerIP 3 #限制的线程数
NoIPLimit index.htm #对此文件不做限制
在论坛的虚拟主机配置文件下面加上:
BandwidthModule On
ForceBandWidthModule On
Bandwidth all 10000 #限速10K
MinBandwidth all -1
测试了一下,一切正常,下载mp3的速度限制在10K一下,这样就再也不用担心大量的下载链接导致apache当机的问题了,当然以上方法不能阻止攻击。
LoadModule bw_module modules/mod_bw.dll
BandWidthModule On #启用bw_mod
AddOutputFilterByType MOD_BW text/html text/plain
Bandwidth all 1024
#MinBandWidth all 512 #最低为多少字节
#MaxConnection all 23 #所有客户端最多23个连接
#LargeFileLimit .zip 20 23000 #限制所有大于20K的后缀名为.zip的文件
DocumentRoot f:/web/my/down
ServerName
ServerAlias 7game.net.cn gamedown.org.cn
引用
LoadModule bw_module modules/mod_bw.so
设置带宽控制策略
我这里的需求有两点,一是只要带宽足够,则尽量给用户最多的带宽;而是如果同时下载人数过多,则给用户保障一个最低带宽,并且尽量平均分配。
引用
BandWidthModule on
ForceBandWidthModule On
BandWidth all 10240000
MinBandWidth all 204800
在这种情况下,总带宽限制在10M,如果服务器上只有一个用户在下载,那么就给他10M的带宽(如果客户端也能有这么高带宽的话),当有50个用户在下载的话,则保障每个用户都能有200K带宽,当有100个用户在下载的话,则平均每个用户分配100K带宽。
bw_module的策略还有很多种,具体可以看源代码中的mod_bw.txt
阅读(822) | 评论(0) | 转发(0) |