nginx限速限流限并发防止攻击

limit_conn_zone在http模块内定义,在http、server、location块内使用
主要用来限制同一个IP能与服务器创建多少个TCP连接(为什么不说http连接,因为http连接就是基于tcp/ip协议的,真正限制的是tcp链接数)

#定义链接数限制内存块,以ip地址为key,内存块名叫my_limit_zone,大小10MB
limit_conn_zone  $remote_addr zone=my_limit_zone:10m;
#声明限制单IP限制10个连接
limit_conn my_limit_zone 10;
#声明限制请求传输速率在超过500KB后启用
limit_rate_after 500K;
#声明每个请求会被限速为100K的网速
limit_rate 100K;
#限制每秒请求数(超出的可以丢弃或者排队,排队里也可以定义队列长度,超出的丢弃),首先定义请求数限制的内存块,key为二进制的IP地址,内存块名叫normal_req_limit,大小10M,速率20r/s就是20个request请求每秒
limit_req_zone $binary_remote_addr   zone=normal_req_limit:10m rate=20r/s;
#声明限制请求速率,使用上面这个内存块来记录,超过速率的给一个可容纳100个请求的队列,排队处理,nodelay,无推迟,意思是队列满了之后超过的直接丢弃不处理了
limit_req zone=normal_req_limit burst=100  nodelay;

posted @   HumorChen99  阅读(5)  评论(0编辑  收藏  举报  
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示