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

1、http中的配置

按 Ctrl+C 复制代码

按 Ctrl+C 复制代码

2、server配置

按 Ctrl+C 复制代码

按 Ctrl+C 复制代码

 

二、访问白名单的配置

1、http中的配置

复制代码
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 {    
        1 $binary_remote_addr;   
        0 "";    
    }  
    limit_conn_zone $limit zone=one:20m;
    limit_req_zone $limit zone=one2:20m   rate=10r/s; 
}
复制代码

 

2、server配置

复制代码
server {
        listen       80;
        server_name  localhost;
       

        location / {
            limit_conn  one  2;   
            limit_req   zone=one2 burst=10 nodelay; 
            root   html;
            index  index.html index.htm;
        }

}
复制代码

发表评论

邮箱地址不会被公开。 必填项已用*标注