当前位置: 首页 > news >正文

OpenResty基于来源IP和QPS来限流

Nginx 经典限流法

ngx_http_limit_req_module 和 ngx_http_limit_conn_module,可以在代理层面对服务进行限流和熔断。

http {# 请求限流定义1:# - $binary_remote_addr:限制对象(客户端)# - zone:定义限制(策略)名称# - 10m:用十兆空间记录访问次数# - rate:每秒10次的请求处理速率limit_req_zone $binary_remote_addr zone={limits-name}:10m rate=10r/s;# 请求限流定义2:# - $server_name:限制对象,对指定服务器请求的限制limit_req_zone $server_name zone={limits-name}:10m rate=10r/s;server {location /search/ {# 引用以上定义的限流策略,做以下设定(漏桶方式)# - burst:最多接收6个排队用户IP(从0开始计数),处于等待处理状态(容量)# - nodelay:超出排队之外的更多请求,拒绝并返回503(溢出)limit_req zone={limits-name} [burst=5] [nodelay];}}
}

参考

## 
https://blog.csdn.net/cold___play/article/details/132094865##
https://blog.csdn.net/qq_42402854/article/details/133554410

QPS限流

使用OpenResty进行限流的几种常见方法:

按QPS(每秒查询率)限流:


使用ngx_http_limit_req_module模块,可以限制每个客户端的请求速率。这个模块使用漏桶算法来控制请求的速率。

在Nginx配置文件中,你可以这样设置:

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

按来源IP限流

使用 ngx_http_limit_conn_module模块,可以限制同时处理的连接数。如果你想根据来源IP地址进行限流,可以像这样配置

http {limit_conn_zone $binary_remote_addr zone=addr:10m;server {location / {limit_conn addr 3;}}
}

这个配置限制了每个IP地址同时只能有3个活跃连接。实际要根据生产的情况来。

http://www.lryc.cn/news/330529.html

相关文章:

  • 面对AI技术创业的挑战以及提供给潜在创业者的一些建议
  • `require`与`import`的区别
  • 中介者模式:优雅解耦的利器
  • Ubuntu20.04安装MatlabR2018a
  • 基于SpringBoot的图书馆管理系统设计与实现
  • 网易云首页单页面html+css
  • acwing算法提高之图论--最小生成树的典型应用
  • springcloud基本使用二(远程调用)
  • 代码随想录刷题day42| 01背包理论基础分割等和子集
  • Python文件操作命令
  • CSS面试题---基础
  • OpenHarmony实战开发-分布式数据管理
  • 微服务(基础篇-007-RabbitMQ部署指南)
  • C语言一维数组及二维数组详解
  • 11.图像边缘检测的原理与实现
  • RVM安装ruby笔记
  • 电力系统负荷预测方法
  • electron打包桌面版.exe之vue项目踩坑(vue3+electron 解决打包后首页打开空白,打包后路由不跳转及请求不到后端数据等问题)
  • MySQL学习笔记(持续更行ing)
  • 服务器配置Huggingface并git clone模型和文件
  • Rust 开发的高性能 HTTP 请求工具
  • Android Studio 通过 WIFI 调试手机 app
  • RabbitMQ高级笔记
  • 【Qt】QtCreator交叉编译环境配置Qt mkspec
  • 点点数据K参数加密逆向分析(RPC方案跟加密算法还原)
  • 考研数学|《1800》+《660》精华搭配混合用(经验分享)
  • 【Redis 二】Redis客户端(Jedis、SpringDataRedis、RedisTemplate)
  • Java中Filter和Interceptor的区别
  • 记一次 pdfplumber 内存泄漏导致的服务器宕机
  • SpringBoot单元测试剖析