limit_req white list

Maxim Dounin mdounin at mdounin.ru
Tue Dec 18 13:08:10 UTC 2012


Hello!

On Tue, Dec 18, 2012 at 07:27:45AM -0500, kron wrote:

> ветка очень старая, но я все же попробую ее оживить.
> 
> попробовал подобный вариант настройки, но в моем случае nginx выдает
> ошибку:
> 
> # nginx -t
> nginx: [emerg] invalid rate "rate=$rate" in
> /etc/nginx/snippet.d/map-limits.conf:15
> nginx: configuration file /etc/nginx/nginx.conf test failed
> 
> но почему, понять не получается

Исходное письмо Игоря - предлагает для обсуждения некий возможный 
синтаксис, который никогда так и не был релизован.  В том, что 
nginx выдаёт ошибку, ничего удивительного нет.

Если хочется сделать white list, то проще всего в переменной для 
соответствующих адресов выдавать пустое значение:

    geo $limited {
        default           1;
        192.168.45.56/32  0;
    }

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

    limit_req_zone $limit zone=foo:1m rate=10r/m;
    limit_req zone=foo burst=5;

Пример конфига цельнотянут отсюда:
http://mailman.nginx.org/pipermail/nginx/2012-July/034790.html


-- 
Maxim Dounin
http://nginx.com/support.html



Подробная информация о списке рассылки nginx-ru