为nginx添加ip访问频率限制

首先我要草草草草草草草草草草草的

马丹的,今天把博客上面那个“小玩意”分享到群里面,竟然无限访问发送邮件啊,坑爹啊,这是玩的,何必啊! 怎么办?赶紧添加IP限制啊,现在邮箱已经发送不出邮件了,擦!

ip访问频率限制

使用limitreqzone和limit_req指令配合使用来达到限制。一旦并发连接超过指定数量,就会返回503错误。

#定义一个名为allips的limit_req_zone用来存储session,大小是10M内存,
#以$binary_remote_addr 为key,限制平均每秒的请求为20个,
#1M能存储16000个状态,rete的值必须为整数,
#如果限制两秒钟一个请求,可以设置成30r/m
http{  
    ...

    #定义一个名为allips的limit_req_zone用来存储session,大小是10M内存,
    #以$binary_remote_addr 为key,限制平均每秒的请求为20个,
    #1M能存储16000个状态,rete的值必须为整数,
    #如果限制两秒钟一个请求,可以设置成30r/m

    limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;
    ...
    server{
        ...
        location {
            ...

            #限制每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=5 nodelay;
            ...
        }
        ...
    }
    ...
}

配置完成: ngxin.conf文件
引入的文件





原文地址:http://qianxunclub.com/wei-nginxtian-jia-ipfang-wen-pin-lu-xian-zhi/
本文由 千寻啊千寻创作。可自由转载、引用,但需署名作者且注明文章出处。

上一篇 :   nodejs使用RSS实现Ghost博客搜索功能

下一篇 :   有车的都看看吧,如果还有如果。。。

热门评论