Nginx req_limit_zone módulo geo do whitelist ip

1

Eu configurei o nginx req_limit_zone para limitar as solicitações ao meu servidor da web. Além disso, adicionei o geo à lista de permissões de determinados IPs, portanto, o limite de solicitações não afeta esses IPs.

O problema é que, depois de testá-lo com ap , ele aplica esse limite de solicitação aos IPs que estão na lista de permissões e tudo o mais não é limitado.

Configuração do limite de taxa:

geo $limited {
    default 1;
        10.2.3.0/24 0;
}

map $limited $limit {
    1   $binary_remote_addr;
    0   "";
}

limit_req_zone  $limit  zone=r_local:10m    rate=50r/s;

Configuração do Vhost:

server {

listen    x.x.x.x:80;
  server_name www.local.dev dev.local.lan ;

  access_log  syslog:info syslog;
  error_log syslog:err;

  if ($host ~* ^local\.dev$) {
    rewrite   ^/(.*)$           http://www.local.dev/$1;
  }

  if ($host ~* ^www\.local\.live$) {
    rewrite  ^/(.*)$  /norlimit/$1  break;
  }

  if ($http_user_agent ~ (Googlebot|msnbot)) {
    rewrite  ^/(.*)$  /norlimit/$1  break;
  }

  more_clear_headers 'Server';
  more_clear_headers 'Pragma';

  location /norlimit/ {
    rewrite     ^/norlimit/(.*)$ /$1 break;
    include       proxy_headers.conf;
    proxy_set_header  X-Secure  False;
    proxy_pass      http://local_dev_www/;
    proxy_next_upstream error timeout invalid_header http_500 http_503;
    internal;
  }

  location / {
    limit_req     zone=r_www.local.dev   burst=60  nodelay;
    include       proxy_headers.conf;
    proxy_set_header  X-Secure  False;
    proxy_pass      http://local_dev_www/;
    proxy_next_upstream error timeout invalid_header http_500 http_503;
  }

  location /api/ {
    include       proxy_headers.conf;
    proxy_set_header  X-Secure  False;
    proxy_pass      http://local_dev_www/;
    proxy_next_upstream error timeout invalid_header http_500 http_503;
  }

  location /inc/ {
    include       proxy_headers.conf;
    proxy_pass      http://local_dev_www/inc/;
    proxy_next_upstream error timeout invalid_header http_500 http_503;
  }

  location /i/ {
    include       proxy_headers.conf;
    proxy_pass      http://local_dev_www/i/;
    proxy_next_upstream error timeout invalid_header http_500 http_503;
  }

  location /i/xml/ {
    return  403;
    }

  location /i/banners/ {
    return  403;
  }

  location /id/ {
    return  403;
  }

}

Eu quero remover o limite de solicitações de IPs de lista de permissões e limitar as solicitações em qualquer outra coisa, mas no momento ela funciona de maneira diferente. Ele limita as solicitações de IP da lista de permissões e qualquer outro IP não é limitado.

    
por mYzk 11.05.2015 / 11:44

0 respostas

Tags