Nginx 配置对流量、链接和请求的限制

Nginx 配置对流量、链接和请求的限制

 

首先给出配置段:html

1node

2nginx

3spa

43d

5code

6server

7htm

8对象

9blog

10

11

12

13

14

15

16

17

18

19

20

21

22

http {

 

    limit_conn_zone $binary_remote_addr zone=one:10m;

 

    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

 

    ...

 

    server {

 

    ...

 

        location /download/ {

 

         limit_rate 500k;

 

         limit_rate_after 50m;

 

         limit_conn one 1;

 

       limit_req zone=one burst=5;<br>    }<br><br>  ...

}

  

 

一、 limit_rate指令

  limit_rate开启nginx限速功能,可配置在http、server、location和if in location配置段。 limit_rate 500k表示限速500kB每秒,限速对象是单个链接,所以若是一个IP有多个链接的话,每一个链接都是限速500k。limit_rate还有在特定状况下开启限速的功能。

limit_rate_after和 limit_rate配合使用表示在下载的文件大小达到设定数后开启限速效果(逐渐降速)。一样针对于单个链接。设定大小设置过小的话可能效果不许确。

 

二、Module ngx_http_limit_conn_module 模块

  limit_conn_zone $binary_remote_addr zone=one:10m模块开启对单个ip、单个会话同时存在的链接数的限制。这里定义一个记录区one,one的总容量是10m,该记录区针对于变量$binary_remote_add生效,这里是针对单个IP生效。该模块只是一个定义,配置在http配置段,须要配合limit_conn指令使用才生效, limit_conn one 1表示该location段使用one定义的 limit_conn_zone ,对单个IP限制同时存在一个链接。

PS:limit_conn_zone0.8版本以前叫

 

与如今有必定的差异。

 

三、ngx_http_limit_req_module 模块

   limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s模块开启对单个ip、单个会话在单位时间内请求的限制。这里zone和limit_conn_zone模块同样,rate表示限制的速率,1r/s表示一秒以内最多1次请求,也能够用5r/m,表示一分钟以内最多5次请求。limit_req_zone一样配置在http配置段。与limit_req指令配合使用才生效。limit_req zone=one burst=5表示该location段使用one定义的limit_req_zone,若是请求数超过 rate=1r/s,剩下的请求将被延迟处理,若是请求数超过burst定义的数量,多余的请求则直接返回503错误。

若是开启nodelay,则超过rate=1r/s的请求直接返回503,再也不延迟处理。

 

相关文章
相关标签/搜索