码迷,mamicode.com
首页 > 其他好文 > 详细

Nginx如何配置除某个IP之外,其他IP,同一IP访问频率限制为30次/每秒

时间:2020-01-22 23:53:20      阅读:47      评论:0      收藏:0      [点我收藏+]

标签:listen   搜索引擎   索引   白名单   定义   lis   session   geo   大小   

一、限制所有单个ip的访问频率

1、http中的配置

http {

    #$limit_conn_zone:限制并发连接数
    limit_conn_zone $binary_remote_addr zone=one1:10m;

    #limit_req_zone:请求频率
    #$binary_remote_addr:以客户端IP进行限制
    #zone=one:10m:创建IP存储区大小为10M,用来存储访问频率
    #rate=10r/s:表示客户端的访问评率为每秒10次
    limit_req_zone $binary_remote_addr zone=one2:10m   rate=30r/s;
     
}

2、server配置

server {
        listen       80;
        server_name  localhost;
       

        location / {
            #限制并发数2
            limit_conn  one1  2;  
            #burst:如果请求的频率超过了限制域配置的值,请求处理会被延迟
            #nodelay:超过频率限制的请求会被延迟,直到被延迟的请求数超过了定义的阈值,这个请求会被终止,并返回503
            limit_req   zone=one2 burst=10 nodelay;
            root   html;
            index  index.html index.htm;
        }

}

  

3、访问白名单设置

http {
# geo:指令定义了一个白名单$limited变量,默认值为1,如果客户端ip在上面的范围内,$limited的值为0
    geo $limited{
        default 1;
        10.0.0.140 0;  #把10.0.0.140设置为白名单
        10.0.0.141 0;  #白名单ip,可继续添加
    }
    #使用map指令映射搜索引擎客户端的ip为空串,如果不是搜索引擎就显示本身真是的ip
    #这样搜索引擎ip就不能存到limit_req_zone内存session中,所以不会限制搜索引擎的ip访问

    map $limited $limit {    
$binary_remote_addr;   
"";    
    }  
    limit_conn_zone $limit zone=one:20m;
    limit_req_zone $limit zone=one2:20m   rate=30r/s; 
}

  

Nginx如何配置除某个IP之外,其他IP,同一IP访问频率限制为30次/每秒

标签:listen   搜索引擎   索引   白名单   定义   lis   session   geo   大小   

原文地址:https://www.cnblogs.com/Mr-Echo/p/12229908.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
分享档案
周排行
mamicode.com排行更多图片
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!