帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  Linux下apache如何限制并发连接和下载速度

Linux下apache如何限制并发连接和下载速度

2019-05-13 09:47:35 8394

mod_limitipconn,这个是Apache的一个非官方模块,根据同一个来源IP进行并发连接控制,Bw_mod,它可以根据来源IP进行带宽限制,它们都是apache的第三方模块。


1.下载:


      wget http://www.landui.com/djao/limit/mod_limitipconn-0.22.tar.gz   


      wget http://www.landui.com/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


发现了以下两行:


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 #限制的线程数

        NoIPLimit index.htm #对此文件不做限制

    </Location>

</IfModule>


在虚拟主机配置文件下面加上:


    BandwidthModule On  

    ForceBandWidthModule On

    Bandwidth all 10000 #限速10K

    MinBandwidth all -1



配置参数说明如下:

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.   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


以上配置既可以针对所有客户端,也可以对某个虚拟主机进行配置


实例一:


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,最大并发连接为100


192.168.1.2的最大带宽为100k,最大并发连接为5


使用FireFox的客户端最大带宽为100k


使用wget的客户端最大带宽为200k


对超过600k的avi格式的文件最大带宽为200kbyte/s


实例二:


<Virtualhost *>


      BandwidthModule On


      ForceBandWidthModule On


      LargeFileLimit .avi 1 20000


      LargeFileLimit .mpg 1 20000


      Servername www.landui.com


</Virtualhost>


该实例对虚拟主机进行了限制,指定的文件类型avi和mpg最大带宽为20K,ForceBandWidthModule On必须有。


实例三:


<Virtualhost *>


      BandwidthModule On


      AddOutputFilterByType MOD_BW text/html text/plain


      Bandwidth all 5000


      Servername www.landui.com


</Virtualhost>


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: