nginx-iplimit

vim  nginx.conf:


HTTP模块(无cdn节点)


#定义一个名为allips的limit_req_zone用来存储session,大小是10M内存,

#以$binary_remote_addr 为key,限制平均每秒的请求为20个,

#1M能存储16000个状态,rete的值必须为整数,

#如果限制两秒钟一个请求,可以设置成30r/m

#limit_req_zone $binary_remote_addr zone=allips:100m rate=50000r/s;




HTTP模块(CDN节点)


## 针对原始用户 IP 地址做限制

limit_conn_zone $clientRealIp zone=TotalConnLimitZone:20m ;

limit_conn  TotalConnLimitZone  50;

limit_conn_log_level notice;

## 针对原始用户 IP 地址做限制

limit_req_zone $clientRealIp zone=ConnLimitZone:20m  rate=250r/s;

#limit_req zone=ConnLimitZone burst=10 nodelay; #如果开启此条规则,burst=10的限制将会在nginx全局生效

limit_req_log_level notice;





server模块


#限制每ip每秒不超过20个请求,漏桶数burst为5

#brust的意思就是,如果第1秒、2,3,4秒请求为19个,

#第5秒的请求为25个是被允许的。

#但是如果你第1秒就25个请求,第2秒超过20的请求返回503错误。

#nodelay,如果不设置该选项,严格使用平均速率限制请求数,

#第1秒25个请求时,5个请求放到第2秒执行,

#设置nodelay,25个请求将在第1秒执行。

#limit_req zone=allips burst=20 nodelay;#allips HTTP模块定义后饮用的

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 接上文的聊聊高并发系统限流特技-1 原文来自开涛的博客,找不到第此原文链接了 接入层限流 接入层通常指请求流量的入...
    望月成三人阅读 3,992评论 0 4
  • 转载来自开涛的聊聊高并发系统限流特技-2 上一篇《聊聊高并发系统限流特技-1》讲了限流算法、应用级限流、分布式限流...
    meng_philip123阅读 4,161评论 0 10
  • 摘要:上一篇《聊聊高并发系统限流特技-1》讲了限流算法、应用级限流、分布式限流;本篇将介绍接入层限流实现。 接入层...
    落羽成霜丶阅读 955评论 0 5
  • 转载:Nginx限速模块初探 云栖君导读:Nginx限速模块分为哪几种?按请求速率限速的burst和nodelay...
    meng_philip123阅读 830评论 0 13
  • 休闲的心情就是云淡风轻, 即放松了身心也释放了心灵。 没有了工作上的困扰, 也不用和时间去赛跑, 只享受这时光里的...
    琢玉书生阅读 123评论 2 1