Apache服务器限制并发连接和下载速度

简介:
       目前各种多线程下载工具泛滥,这对提供部分下载功能的网站来说是个比较头疼的问题,由于多线程下载会给服务器带来巨大的负载压力,而且可能会对整个站点产生影响,使其不能正常访问。那么有没有什么方法可以解决这些问题呢?答案是肯定的。目前国内大部分站点都是基于LAMP(Linux+Apache+Mysql+php)架构的,Apache是一个开源的,功能强大,稳定,使用量最大的WEB服务器。Apache是模块化开发的,可以根据需要增加各种功能模块,这里我给大家介绍两个模块,一个是mod_limitipconn,另一个是bw_mod。
     下面说一下它们的安装配置,它们的下载地址是:

一、mod_limitipconn

    mod_limitipconn,这个是Apache的一个非官方模块,根据同一个来源IP进行并发连接控制,它是使用ExtendedStatus On的形式,工作在应用层。当同一个源IP的连接到达限制的时候,apache对get请求发送: HTTP/1.1 503 Service Temporarily Unavailable,使用户不能进行多线程下载,但并不能阻止攻击。目前它的最新版本是0.22,支持Apache 2.0。
 
解压:tar zxvf mod_limitipconn-0.22.tar.gz;
安装:在进行安装前要确认apxs文件的位置,要使用whereis apxs命令查找apxs文件的位置。可以通过两种方法进行安装。
    一种方法是修改mod_limitipconn的Makefile文件,确保Makefile文件中APXS=指向正确的apxs文件。
然后输入:make install 
另一种方法就是直接用apxs命令进行编译安装,如:
/usr/local/apache/bin/apxs –c –i – a mod_limitipconn.c 
修改Apache的配置文件httpd.conf:
1.找到ExtendedStatus On,如果前面有#号的话要把#号去掉,如果没有这个选项需要自己手工添加;
2.确认LoadModule limitipconn_module /usr/lib/apache/mod_limitipconn.so这个选项存在;
3.在httpd.conf进行mod_limitipconn配置,配置示例如下:
<IfModule mod_limitipconn.c>
<Location /> #要限制的目录,此处表示的根目录
MaxConnPerIP 3 #要限制每个IP的并发连接数,此处为3
NoIPLimit image/* #对图片文件夹不做IP限制
</Location>
<Location /mp3> #要限制的目录,此处表示/mp3目录
MaxConnPerIP 1 #限制每个IP的并发连接数为1个
OnlyIPLimit audio/mpeg video #该限制只对视频和音频格式的文件
</Location>
</IfModule>
            4.重启Apache,这时可以用多线程下载工具下载文件试一下。

二、bw_mod

Bw_mod,它可以根据来源IP进行带宽限制。
       解压:tar zxvf bw_mod-0.6.tgz
安装:通过whereis apxs命令找到apxs命令的位置,如apxs的位置是:/usr/local/apache/bin/apxs,那么我们就可以通过:
/usr/local/apache/bin/apxs –c –i –a命令进行安装。
修改Apache的配置文件httpd.conf。
1.确认LoadModule bw_module modules/bw_mod-0.6.so选项已经存在。
2.配置示例:
BandWidthModule On                 #启用bw_mod
BandWidth    all 102400              #最高为为100kB
MinBandWidth all 51200              #最低为50KB
MaxConnection all 3                   #所有客户端最多3个连接
LargeFileLimit .rar 30 23000         #限制所有大于30K的后缀名为.rar的文件的
                                                 速率为23000字节/秒,即23K/秒
3.重启Apache
       以上只说了一下这两个模块的安装和简单的配置,更具体的配置请看这两个模块的说明文件。
 

     本文转自 kofstart 51CTO博客,原文链接: http://blog.51cto.com/kofstart/34911 ,如需转载请自行联系原作者

相关文章
|
11月前
|
网络协议
端口最多只有65535个,为什么服务器能承受百万并发
服务器通过四元组(源IP、源端口、目标IP、目标端口)识别不同TCP连接,每条连接对应独立socket。数据包携带四元组信息,服务端据此查找对应socket进行通信。只要四元组任一元素不同,即视为新连接,可创建独立socket。资源充足时,单进程可支持百万级并发连接,socket与端口非一一对应。
692 10
端口最多只有65535个,为什么服务器能承受百万并发
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
794 18
|
消息中间件 前端开发 Kafka
【Azure 事件中心】使用Apache Flink 连接 Event Hubs 出错 Kafka error: No resolvable bootstrap urls
【Azure 事件中心】使用Apache Flink 连接 Event Hubs 出错 Kafka error: No resolvable bootstrap urls
438 2
|
Java 网络安全 Apache
SshClient应用指南:使用org.apache.sshd库在服务器中执行命令。
总结起来,Apache SSHD库是一个强大的工具,甚至可以用于创建你自己的SSH Server。当你需要在服务器中执行命令时,这无疑是非常有用的。希望这个指南能对你有所帮助,并祝你在使用Apache SSHD库中有一个愉快的旅程!
1057 29
|
Linux
Linux 服务器下载百度网盘文件
本教程指导如何使用 `bypy` 库从百度网盘下载文件。首先通过 `pip install bypy` 安装库,接着运行 `bypy info` 获取登录链接并完成授权,最后将文件置于指定目录并通过 `bypy downdir /Ziya-13b-v1` 命令下载至本地。
2043 1
Linux 服务器下载百度网盘文件
阿里云国际版购买了服务器后如何下载发票?
阿里云国际版购买了服务器后如何下载发票?
|
数据库连接 Apache Java
【独家揭秘】图书管理系统的奇幻之旅:一文看透Apache Wicket如何从想法萌芽到服务器上翩翩起舞?
【8月更文挑战第31天】本文通过实战案例,详细介绍从概念到部署的Apache Wicket应用开发全流程。以在线图书管理系统为例,涵盖应用概念定义、项目创建、架构设计、首页编写、数据库交互及应用部署等关键步骤。通过Maven或Gradle引入Wicket依赖,设计包结构,并使用JPA或Hibernate处理数据持久化。最终,将应用配置并部署到Tomcat或Jetty服务器,帮助你全面掌握Wicket开发技巧。
282 1
|
消息中间件 Java Kafka
【Azure 事件中心】开启 Apache Flink 制造者 Producer 示例代码中的日志输出 (连接 Azure Event Hub Kafka 终结点)
【Azure 事件中心】开启 Apache Flink 制造者 Producer 示例代码中的日志输出 (连接 Azure Event Hub Kafka 终结点)
283 0
|
监控 Linux 测试技术
|
弹性计算 Ubuntu 数据安全/隐私保护
ECS 配置 Apache2 使用体验
本篇文章讲解了 ECS 上使用 Ubuntu 20.4 系统配置 Apache2 并公网访问的实例
ECS 配置 Apache2 使用体验

热门文章

最新文章

推荐镜像

更多