在平时工作中,我们为了一些软件文档方便查看通常会搭建一些目录服务(类似yum源),为控制下载速度和下载总数,我们可以利用nginx的ngx_http_limit_conn_module模块。

首先在http段添加如下配置:

limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;

在对应的location中添加如下配置,虽然这个模块作用域可以是http,server,location,但是为了不影响其他的服务,只针对下载服务,因此在location中添加:

location /down {
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
        limit_conn perip 1;
        limit_conn perserver 100;
        limit_conn_status 505;
        limit_rate_after 500k;
        limit_rate 100k;
        root html;
    }

同时为了页面友好,在server中定义下505的指定页面:

error_page  555    /hello;

保存配置,重启nginx。

配一个被限制的图j_0005.gif

wKioL1coZXzyoOkQAACxySam9iU997.png