nginx的请求限制

一、http协议的连接与请求

nginx的请求限制

nginx的请求限制

总结:

HTTP请求是建立在一次TCP连接的基础之上。

一次TCP请求至少产生一次HTTP请求。

二、连接限制

limit_conn_module

配置语法:

Syntax:    limit_conn_zone key zone=name:size;
Default:    —
Context:    http

Syntax:    limit_conn zone number;
Default:    —
Context:    http, server, location

示例:

nginx的请求限制

nginx的请求限制

limit_conn conn_zone 1 : 同一时刻只允许一个ip的请求过来。

三、请求频率限制

limit_req_module

Syntax:    limit_req_zone key zone=name:size rate=rate [sync];
Default:    —
Context:    http

yntax:    limit_req zone=name [burst=number] [nodelay | delay=number];
Default:    —
Context:    http, server, location

示例:

nginx的请求限制

说明:

$binary_remote_addr :客户端地址,不用$remote_addr,是因为 $binary_remote_addr更省空间。

zone=req_zone : 分配的存储空间名称。

reate=1r/s:对于同一个IP地址过来的所有的请求,限制为每秒只能发起1个请求。

配置limit_req_zone

nginx的请求限制

nginx的请求限制

用ab压力测试工具进行测试

//总共请求30次,并发为20
ab -n 30 -c 20 http://192.168.0.133/index.html

测试结果:

nginx的请求限制

查看error.log,发现日志中有和多请求限制的错误。

nginx的请求限制

第二种参数配置:

nginx的请求限制

burst=3 表示客户的请求在超过指定的速率(本次配置为1r/s)后,遗留的3个请求释放到下一秒执行,会保证有3个请求在下一秒执行,起到一个访问限速的作用,即延迟响应。

nodelay表示除了这3个请求外,其它的请求直接返回。

nginx的请求限制

本文为袋鼠学习中的总结,如有转载请注明出处:https://www.cnblogs.com/chrdai/protected/p/11331504.html

Original: https://www.cnblogs.com/chrdai/p/11331504.html
Author: Chrdai
Title: nginx的请求限制

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/543619/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球