nginx限制ip访问次数

lit_req_zone的功能是通过 令牌桶原理来限制 用户的连接频率,(这个模块允许你去限制单个地址 指定会话或特殊需要的请求数 )

http { 
        limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; 
        #触发条件,限制每个地址每秒只能请求10次 
        server { 
                ... 
                location  ~ \.php$ { 
                        limit_req zone=one burst=150 nodelay; 
                        #执行的动作,通过zone名字对应 
                 } 
        }
} 

参数说明:
1)$binary_remote_addr二进制远程地址
2)zone=one:10m :zone名字叫one,并为这个zone分配10M内存,用来存储会话(二进制远程地址)1m内存可以保存16000会话
3)rate=10r/s; 限制频率为每秒10个请求
4)burst=150 这相当于在检查站req旁边放150个座位。如果某个请求地址当时超过速度限制被拦了,请他在空座位上坐着,等排队,如果检查站空了,就可以通过。如果连座位都坐满了,那就抱歉了,请求直接退回,客户端得到一个服务器忙的响应,每秒增加10个令牌(漏桶原理)
5)nodelay 超过的请求不被延迟处理,设置后15个请求在1秒内处理

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值