阅读更多
很长时间没有写点东西了,今天忙里偷闲来说说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来限制四层连接数