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.