ECS 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
$ 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
vi 打开 Apache 的配置文件 httpd.conf, 搜索如下两行,如果没有手动添加:
LoadModule limitipconn_module modules/mod_limitipconn.so
LoadModule bw_module modules/mod_bw.so
下面的参数可以作为全局变量添加,也可以作为虚拟主机范围添加:
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。