欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

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

程序员文章站 2022-06-11 12:53:57
mod_limitipconn,这个是apache的一个非官方模块,根据同一个来源ip进行并发连接控制,bw_mod,它可以根据来源ip进行带宽限制,它们都是apache的...

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

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

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

</virtualhost>

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

实例三:

<virtualhost *>

      bandwidthmodule on

      addoutputfilterbytype mod_bw text/html text/plain

      bandwidth all 5000

      servername

</virtualhost>