Apache限制下载线程数与带宽详解

字体大小: 中小 标准 ->行高大小: 标准
2014年放了一台服务器到数据中心,发现下载量很大,大部份是用迅雷下载这样会造成服务器负担过大,有人下载时会打不开网页的现象,所以网上查找解决下载限制的方法。
找到mod_limitipconn与mod_bw这两个模块,前者是限制下载线程数,后者是限制带宽但是发现,网上90%是转载的文章,有些根本没有实际使用过,经过我花大量的时间,才真正用上了这两个模块。现在一个一个介绍。

首先要使用这两个模块,必须在httpd.conf找到
LoadModule status_module modules/mod_status.so
将前面的#去掉
同时在这句下面写上
ExtendedStatus On
LoadModule limitipconn_module modules/mod_limitipconn.dll
LoadModule bw_module modules/mod_bw.dll
我使用的是windows 如果是其它系统,dll 换成so
我使用的环境是XAMPP1.7.7 apache 2.2.21

mod_limitipconn

官网下载地址:http://dominia.org/djao/limitipconn.html
限制下载线程模块,我希望用户只能开5个线程进行下载,只对ZIP,RAR做限制,不对其它文件做

限制,所以用户可以打开N多个网页,根据官方使用说明是这样的
<Location />
# 全局设置,对所有网站进行
MaxConnPerIP 1
NoIPLimit image/*
<Location /somewhere>
# 对指定目录设置,/somewhere代表网站根目录下的somewhere
目录
MaxConnPerIP 3
OnlyIPLimit audio/mpeg video
</Location>

< /Location>
上面表示什么意思呢,就是说,对所有网站所有目录,限制同一个IP只能访问一次网站
但是 NoIPLimit image/* 对图片不影响,也就是说,你打开网页只能打开一次,你马上打开另一

个页面会出现503的错
OnlyIPLimit audio/mpeg video 表示仅对 音频与视频文件做IP线制,而且是somewhere目录 。

这就是官方的例子,也是大部份网站转载的例子,但实际上根本不符合要求。
比如说 audio/mpeg video image/* 是怎么来的呢,如何写呢,这里我告诉大家,这是MIME类型

,在apache的conf目录中有一个mime.types文件里面列出了常用的MIME类型
现在,我要对ZIP,RAR文件做限制,下载嘛,也就是这两种文件的包大,正确成功的写法如下

<Location />
MaxConnPerIP 5
#OnlyIPLimit application/zip application/octet-stream application/x-rar-compressed
OnlyIPLimit application/zip application/x-rar-compressed
< /Location>
看到没,只允许用户下载zip,rar同时开5个线程下载,打开第6个就会返回503的错
这里有一点要注意,这个限制线程的模块MIME最好是确定的类型,像application/octet-stream
是不能成功的,这个表示bin iso等多种类型的MIME
只有像application/zip这种确定唯一类型的才会生效成功,多种类型之间用空格隔开

NoIPLimit的写法和OnlyIPLimit是一样的,这里就不列出了,一般是用不上,下面这张图是监控出来的效果,用的是卡巴网络监视

大家可以上我的网站

http://www.panshy.com/download/other/Video/2014-03-10/205.php

试试下载,看能不能5个以上线程正确下载

apache限速.jpg
mod_bw
官方下载地址
http://ivn.cl/2010/01/06/downloads-for-bandwidth-mod/
这个是限制带宽的,网上有很多例子,都是正确的。
这里我直接给出我服务器上的配置
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Satisfy all
BandwidthModule On //打开On 关闭 off
ForceBandwidthModule On//打开On 关闭 off
MaxConnection all 10000 限制最大IP数
Bandwidth all 0
MinBandwidth all 0
LargeFileLimit * 512000 220000 //当文件大于512M时限速220K每秒

</Directory>

此文章由 www.phpgz.com 收集整理 ,地址为: http://www.phpgz.com/htmls/67500.html

大屏阅读,大屏评论.