Nginx如何限制流量

发布时间:2020-04-04 17:30:02 作者:daimayi 阅读量:1512

Nginx如何限制流量
对于提供下载的网站,肯定是要进行限制流量的,例如BBS、视频服务,还是其它专门提供下载的网站。在nginx中我们完全可以做到限流,由Core模块提供了limit_rate、limit_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区段,没有默认值。
推荐阅读:Nginx的启动、停止

***本网站图片,文字之类版权申明,因为网站可以由注册用户自行上传图片或文字,本网站无法鉴别所上传图片或文字的知识版权,如果侵犯,请及时通知我们,本网站将在第一时间及时删除。

我要评论

  热门标签

爱秒云
Catfish(鲶鱼) Blog V 4.7.3