Почитал http://nginx.org/ru/docs/http/ngx_http_map_module.html, спасибо.
То есть код:
map $http_x_forwarded_for $key {
5.187.78.183 1;
}
создает новую переменную $key и если значение текущего IP клиента - $http_x_forwarded_for соответствует нужному IP-адресу - 5.187.78.183, то переменной $key присваивается значение 1?
и соответственно лимиты:
limit_req_zone $key zone=perserver:10m rate=1r/s;
limit_conn_zone $key zone=perip:10m;
будут использоваться только для этого IP, для всех других $key будет пустым.
А как же сделать, чтобы этот IP выступал в виде исключения?
Может так?
if (!$key) {
limit_req_zone $binary_remote_addr zone=perserver:10m rate=1r/s;
limit_conn_zone $binary_remote_addr zone=perip:10m;
}