nginx 根据ip设置访问频率限制

#根据ip地址返回0,1,2等 本例0为白名单 上下文 http
geo $rule_list {
  default      1;
  127.0.0.1            1;
  112.81.16.62       0;
  #include ip文件
}

#如果不在条件之内返回二进制地址 上下文 http
map $rule_list $limit {
  1  $binary_remote_addr;
  0  "";
}

例如 $remote_addr为127.0.0.1 $var等于1 否则返回默认值0

map $remote_addr $var{
  default  0;
  ''127.0.0.1'' 1;
}

#每秒一次请求 如果返回"" 速率限制会失效
limit_req_zone $limit zone=test:10m rate=1r/s;  #$limit为binary_remote_addr时有限制  为空字符串无限制

在location中 limit_req zone=test;

posted @ 2019-11-07 15:37  马户  阅读(887)  评论(0编辑  收藏  举报