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与端口非一一对应。
691 10
端口最多只有65535个,为什么服务器能承受百万并发
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
794 18
|
安全
基于Reactor模式的高性能服务器之Acceptor组件(处理连接)
本节介绍了对底层 Socket 进行封装的设计与实现,通过 `Socket` 类隐藏系统调用细节,提供简洁、安全、可读性强的接口。重点包括 `Socket` 类的核心作用(管理 `sockfd_`)、成员函数的功能(如绑定地址、监听、接受连接等),以及 `Acceptor` 组件的职责:监听连接、接收新客户端连接并分发给上层处理。同时说明了 `Acceptor` 与 `EventLoop` 和 `TcpServer` 的协作关系,并展示了其成员变量和关键函数的工作机制。
271 2
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle客户端与服务器端连接建立的过程
Oracle数据库采用客户端-服务器架构,客户端通过其网络环境与服务器通信,实现数据库访问。监听程序负责建立连接,通过命令lsnrctl可启动、停止及查看监听状态。本文介绍了监听器的作用及相关基础管理操作。
450 0
|
Java 网络安全 Apache
SshClient应用指南:使用org.apache.sshd库在服务器中执行命令。
总结起来,Apache SSHD库是一个强大的工具,甚至可以用于创建你自己的SSH Server。当你需要在服务器中执行命令时,这无疑是非常有用的。希望这个指南能对你有所帮助,并祝你在使用Apache SSHD库中有一个愉快的旅程!
1057 29
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
7194 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
IDE 网络安全 开发工具
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
本文介绍了如何使用VS Code通过Remote-SSH插件连接远程服务器进行代码开发,并与PyCharm进行了对比。作者认为VS Code在连接和配置多个服务器时更为简单,推荐使用VS Code。文章详细说明了VS Code的安装、远程插件安装、SSH配置文件编写、服务器连接以及如何在连接后切换文件夹。此外,还提供了使用密钥进行免密登录的方法和解决权限问题的步骤。
12711 0
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
|
Apache 数据中心 Windows
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
|
弹性计算 安全 Windows
通过远程桌面连接Windows服务器提示“由于协议错误,会话将被中断,请重新连接到远程计算机”错误怎么办?
通过远程桌面连接Windows服务器提示“由于协议错误,会话将被中断,请重新连接到远程计算机”错误怎么办?
|
10月前
|
人工智能 数据处理 API
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
Apache Flink Agents 是由阿里云、Ververica、Confluent 与 LinkedIn 联合推出的开源子项目,旨在基于 Flink 构建可扩展、事件驱动的生产级 AI 智能体框架,实现数据与智能的实时融合。
1547 6
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来

热门文章

最新文章

推荐镜像

更多