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 ,如需转载请自行联系原作者

相关文章
|
15天前
|
网络安全 Apache
Apache服务器安装SSL证书
Apache服务器安装SSL证书
19 0
|
1月前
|
SQL 分布式计算 DataWorks
DataWorks常见问题之dataworks连接FTP服务器失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
1月前
|
运维 Linux Nacos
nacos常见问题之远程访问不报错放到服务器上nacos连接超时如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
59 1
|
18天前
|
网络协议 Python
pythonTCP客户端编程连接服务器
【4月更文挑战第6天】本教程介绍了TCP客户端如何连接服务器,包括指定服务器IP和端口、发送连接请求、处理异常、进行数据传输及关闭连接。在Python中,使用`socket`模块创建Socket对象,然后通过`connect()`方法尝试连接服务器 `(server_ip, server_port)`。成功连接后,利用`send()`和`recv()`进行数据交互,记得在通信完成后调用`close()`关闭连接,确保资源释放和程序稳定性。
|
1月前
|
弹性计算
阿里云3M带宽云服务器并发多大?阿里云3M带宽云服务器测评参考
在探讨云服务器3M带宽能支持多大并发这一问题时,我们首先要明白一个关键点:并发量并非仅由带宽决定,还与网站本身的大小密切相关。一般来说,一个优化良好的普通网站页面大小可能只有几K,为便于计算,我们可以暂且假定每个页面大小为50K。
819 1
|
5天前
|
网络协议 安全 Linux
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
|
6天前
|
存储 Java 网络安全
ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
【4月更文挑战第10天】ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
12 1
|
22天前
|
弹性计算 关系型数据库 MySQL
阿里云数据库服务器价格表,数据库创建、连接和使用教程
阿里云数据库使用流程包括购买和管理。选择所需数据库类型如MySQL,完成实名认证后购买,配置CPU、内存和存储。确保数据库地域与ECS相同以允许内网连接。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码连接。同一VPC内的ECS需添加至白名单以进行内网通信。参考官方文档进行详细操作。
125 3
|
1月前
|
Shell Linux 网络安全
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
30 0
|
1月前
|
Shell Linux Apache
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
162 1

推荐镜像

更多