开发者社区> 问答> 正文

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

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

展开
收起
行者武松 2018-01-08 17:25:26 3028 0
1 条回答
写回答
取消 提交回答
  • 阿里云ping https://ping.gaomeluo.com/aliyun/

    解决方案

    一般通过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

    1. 安装

    $ 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

    1. 编辑Apache配置文件

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

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

    1. 进行限速配置

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

    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

    2019-07-17 21:52:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载