当前位置 主页 > 服务器问题 > Linux/apache问题 >

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

    栏目:Linux/apache问题 时间:2018-10-28 14:01

    在Linux下限值Apache的并发连接数和下载速度需要用到一款Apache的扩展模块mod_limitipconn,下面我们就来讨论mod_limitipconn的安装使用方法

    mod_limitipconn,这个是Apache的一个非官方模块,根据同一个来源IP进行并发连接控制,Bw_mod,它可以根据来源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

    发现了以下两行:

    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

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