ItGo.me - 专注IT技术分享

首页 > 开源汇总 > nginx > nginx限制访问频率limit模块

nginx限制访问频率limit模块

时间:2016-03-09来源:网友分享 点击:
 ngx_http_limit_req_module
 nginx使用此模块主要用来限制每秒请求数量,至于依据什么条件限制是由我们来自定义的。
     命令: limit_req_zone $variable zone=name:size rate=rate;
     大概意思是:以$variable变量为条件,命名为name,设置的存储空间大小为size,设置限定频率为rate;
    可以设置多个,不同条件,不同名称,不同大小的限制。
    这个定义需要写在http配置段中。 在匹配的location中写上limit_req zone=name [burst=number] [nodelay];
这里burst就是允许的漏桶数,当请求频率大于rate但是超出的数量不大于burst设置的数量,则nginx会将超出的请求延迟后面返回。
如果请求数量超出burst了,则将超出部分直接返回错误码,默认503。至于nodelay就是设置是否要延迟,有它不超过burst的请求才延迟。
$binary_remote_addr,可以根据自己的需求,来定义自身的相应条件。

The ngx_http_limit_req_module module (0.7.21) is used to limit the request processing rate per a defined key, in particular,
the processing rate of requests coming from a single IP address. The limitation is done using the “leaky bucket” method.

配置例子:

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
    ...
    server {
        ...
        location /search/ {
            limit_req zone=one burst=5;
 		}		
}

测试
ab -n 10 -c 1 http://www.xxx.com/


Nginx内置变量全局变量大全

$request_body // 记录POST过来的数据信息 $request_body_file //客户端请求主体信息的临时文件名 $request_method //客户端请求的动作,通常为GET或POST,如:GET $request_uri //包含请求参数的原始...

nginx限制访问频率limit模块

ngx_http_limit_req_module nginx使用此模块主要用来限制每秒请求数量,至于依据什么条件限制是由我们来自定义的。...

ngx_http_limit_req_module nginx使用此模块主要用来限制每秒请求数量,至于依据什么条件限制是由我们来自定义的。
------分隔线----------------------------