浅谈nginx的限制模块

很长时间没有写点东西了,今天忙里偷闲来说说nginx的限制模块,请大家指正批评

一、简要介绍

nignx是什么,这里就不多说,我在这里直接说说nginx的限制模块,在它里面,有三种限制模块。

1.http连接数限制模块,对应的nginx模块是 Module ngx_http_limit_conn_module

这个模块是在 version 0.8.18  但在1.7.6 版本后,命令方式变更了。

1) 0.8.18 前的命令版本如下
Syntax: limit_zone name $variable size;
Default: —
Context: http

2)0.8.18 后的命令如下,也是当前的生命令格式
Syntax: limit_conn_zone key zone=name:size;
Default: —
Context: http

2.http请求连接频率限制,对应的nginx模块是 Module ngx_http_limit_req_module
这个模块是在0.7.21 中新境,增加了了一种灵活的限制方式。

3.steam连接数限制模块,对应的nginx模板是 Module ngx_stream_limit_conn_module
这个模块比较新,是nginx 1.9.0 之后有了stream特性时,才加入进来,但真正出现在nginx的时候是1.9.3版本了。

二、以上模块的相似点与不同点
1.相似点
    相似的地方就是它们都是基于连接来做限制,如果http连接数、请求连接、stream四层连接。
2.不同点
    在处理连接方式不一样,当达到连接限制时,nginx返回的状态码的机制是有点区别,具体看下面的详细内容。

三、分模块详解

1. Module ngx_http_limit_conn_module
  作用:根据定义的每个key来限制http连接数

2.Module ngx_http_limit_req_module
作用:根据定义的每个key来限制请求处理的频率

3.Module ngx_stream_limit_conn_module
作用:根据定义的每个key来限制四层连接数

猜你喜欢

转载自afatech.iteye.com/blog/2292905