Re: Применение директивы для определенного IP адреса
maxpostal
nginx-forum на forum.nginx.org
Пн Окт 17 20:24:17 UTC 2016
Иван, здравствуйте. Спасибо за помощь.
Здесь http://nginx.org/ru/docs/http/ngx_http_limit_req_module.html указана
директива:
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
$binary_remote_addr - это переменная nginx обозначающая ip-адрес клиента?
В итоге указанный мой ранее кусок конфига не работает, то есть модули
лимитов nginx не отрабатывают, а если изменить конфиг на:
# Настраиваем лимиты кроме ip адреса
map $http_x_forwarded_for $binary_remote_addr {
15.267.98.155 1;
}
limit_req_zone $binary_remote_addr zone=perserver:10m rate=1r/s;
limit_conn_zone $binary_remote_addr zone=perip:10m;
То получаю ошибку:
-- Unit nginx.service has begun starting up.
Oct 17 23:17:41 domain.ru nginx[29398]: nginx: [emerg] the duplicate
"binary_remote_addr" variable in /etc/nginx/nginx.conf:39
Oct 17 23:17:41 domain.ru systemd[1]: nginx.service: control process exited,
code=exited status=1
Oct 17 23:17:41 domain.ru systemd[1]: Failed to start LSB: Stop/start
nginx.
Соответственно директивы:
limit_req_zone $binary_remote_addr zone=perserver:10m rate=1r/s;
limit_conn_zone $binary_remote_addr zone=perip:10m;
работают, а если указать $key:
limit_req_zone $key zone=perserver:10m rate=1r/s;
limit_conn_zone $key zone=perip:10m;
то лимиты не работают :(
Posted at Nginx Forum: https://forum.nginx.org/read.php?21,270039,270336#msg-270336
Подробная информация о списке рассылки nginx-ru