Linux下Apache 如何限制并发连接数和下载速度?

赞赏 2016-07-12

Linux 下 Apache 限制并发连接数和下载速度的方法。


解决方案


一般通过mod_limitipconn和bw_mod两个模块来实现 Apache 的限速。 

  • mod_limitipconn :限制每 IP 的连接数 。
  • mod_bandwidth :限制目录总的带宽使用  。

下面介绍下载安装和使用方法: 

1.下载:

wget http://dominia.org/djao/limit/mod_limitipconn-0.22.tar.gz 
wget http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz

2. 安装

$ tar -zxvf mod_limitipconn-0.22.tar.gz
$ cd mod_limitipconn-0.22
$ vi Makefile

修改:apxs = “/usr/local/apache2/bin/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

 3. 编辑Apache配置文件 

vi 打开 Apache 的配置文件 httpd.conf, 搜索如下两行,如果没有手动添加:

LoadModule limitipconn_module modules/mod_limitipconn.so
LoadModule bw_module          modules/mod_bw.so

 4. 进行限速配置

下面的参数可以作为全局变量添加,也可以作为虚拟主机范围添加:   

  • MaxConnPerIP 3 #限制的线程数
  • NoIPLimit index.htm #对此文件不做限制
  • BandWidthModule On
  • BandWidth all 30720
  • ForceBandWidthModule On 

示例:

BandWidthModule On #开启mod_bw, 限制所有文件类型也开启了
BandWidth all 307200  #所有客户端最大带宽为300k,最大并发连接为100
BandWidth 1.1.1.1 102400 
BandWidth “u:^Mozilla/5(.*)” 102400  #使用FireFox的客户端最大带宽为100k
BandWidth “u:wget” 204800   #使用wget的客户端最大带宽为200k
ForceBandWidthModule On
LargeFileLimit .avi 600 204800  #对超过600k的avi格式的文件最大带宽为200kbyte/s
MaxConnection all 100  #最大连接数为100
MaxConnnection 1.1.1.1 5  #1.1.1.1的最大带宽为100k,最大并发连接为5
登陆后阅读全文
阅读 1283 赞赏 0 有用 0 没用 0 收藏 0 分享

   



0 条留言

linux分享的头像

linux分享

每个软件都有确定的用途

相关文章

阿里云·业务运营团队内部的前端构建和工程化工具 Dawn开源

阿里云云盾扫描服务器的的IP段有哪些?

阿里云云盾扫描服务器的的IP段有哪些?

有料推荐

这世界欠我一个这样的老公!

高校学生模仿“世界名画”摆拍,可以说是戏精本精了

iPhone X 跌破发行价,苏宁200亿入股恒大 | 财经日日评

果然是高手!这次在日本,特朗普竹杠敲得不是一般狠

资深黄牛现身说法:iPhone X价格秒变不停,就像炒股一样

长一样的双胞胎也能识别?蚂蚁金服发布「眼纹识别」技术

苏联是怎么被阿富汗拖垮的?

美团或入局「分时租赁」共享汽车,王兴要大笔投入「泛出行」领域了? | 36氪独家

你或许被“一盘番茄炒蛋”刷屏了,但有人辛酸,有人质疑

iPhone X发售前夜,黄牛与苹果公司的不安

他的文章

我是如何执行 "rm -rf ~" 的

正态分布为什么常见?(财富的分布却不符合正态分布)

Linux下窗口管理器 xmonad 的使用教程

用披萨做比喻来解释 IaaS,PaaS,SaaS 的区别

如何制作CSR(证书私钥和证书请求文件)文件?

php RedisException with message read error on connection

Windows环境下ping丢包或不通时链路测试工具推荐

Linux下ping丢包或不通时链路测试工具推荐

链路测试结果分析说明及常见链路异常场景和测试报告

SSH 登录时出现如下错误:login: Module is unknown

手机扫一扫
分享文章