nginx限制流量

 

 

对于提供下载的网站,肯定是要进行流量控制的,例如BBS、视频服务,还是其它专门提供下载的网站。在nginx中我们完全可以做到限流,由Core模块提供了limit_ratelimit_rate_after命令。

 

   

 

    通过以下两条命令来完成限制流量。

 

指令名称:limit_rate

    能:该指令用于指定向客户端传输数据的速度,速度的单位是每秒传输的字节数。需要明白的一点是该限制只是针对一个连接的设定,就是说如果同时有两个连接那么它的速度将会是该指令设置值的2倍,

 

如果需要在server级别对某些客户端限制速度,对于这种情况——这个指令可能并不适合,但是可设置$limit_rate变量,可以为该变量传递相应的值来实现,例如:

 

server {

  if ($slow) {

    set $limit_rate  4k;

  }

}

 

    当然也可以通过设置X-Accel-Limit-Rate(来自于NginxXSendfile模块)来控制由proxy_pass(来自于HttpProxyModule模块)返回的响应数据的速率,而没有使用X-Accel-Redirect头。

    : limit_rate speed

默 认 值: no

使用环境: http, server, location, if in location

 

    令:limit_rate_after

    能:limit_rate_after,这个命令中的“after”提示了我们,可以这样理解“在后再限制速率为”,没错,就是这个意思,它的语法为:limit_rate_after time(这是官方威客上http://wiki.nginx.org/HttpCoreModule#limit_rate的语法),它的意思是以最大的速度下载time时长后,但是在实际的使用中发现命令limit_rate_after的参数是一个下载字节量的大小值,而不是时间值,因此上面的命令“limit_rate_after 3m”解释为:以最大的速度下载3M后。

    法:limit_rate_after size

默 认 值:limit_rate_after 1m

使用字段:http, server, location, location中的if字段

 

实例配置

 

    看下面的配置,这是一个视频服务器上的配置片断,通过这两条命令限制了访问者的下载速度:

 

 

   location /download {

       limit_rate_after 3m;

       limit_rate 512k;

    }

 

   

我们看一下这两条命令:

 

 

    limit_rate,相对于limit_rate_after命令,这个命令已经开始限速了,它的语法为:limit_rate speed,它表示限制为的速率。该指令可以用在http, server, location以及location中的if区段,没有默认值。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27043155/viewspace-732626/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27043155/viewspace-732626/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值