Re: limit_req_zone, переменный rate

Maxim Dounin mdounin на mdounin.ru
Чт Мар 11 15:33:26 MSK 2010


Hello!

On Thu, Mar 11, 2010 at 02:07:09PM +0200, Sergej Kandyla wrote:

> Господа,  пытаюсь передать в limit_req_zone  rate в качестве переменной.
> nginx/0.8.34
> centos5.4 i386
> 
> тест конфига проходит вполне успешно
> 
> http {
>       limit_req_zone $binary_remote_addr zone=one:10m $rate;
>        ..
> 
> server {
>       location / {
>                limit_req zone=one ;
>                set $rate "rate=3r/s";
>                proxy_pass              ....;

Директива limit_req_zone переменные (кроме собственно той, по 
которой делается ограничение) не поддерживает, а rate по 
умолчанию - 1 запрос в секунду.

В вашем случае конфиг будет проинтерпретирован как

    limit_req_zone $rate zone=one:10m rate=1r/s;

т.е. ограничивать скорость до 1 запроса в секунду, различать 
сессии по значению переменной $rate.

[...]

> PS. вся эта затея нужна для того чтобы по различным критериям
> выставлять различный limit_req в пределах заданного сервера. В
> конкретном случае - для различных айпи делать различные limit_req.

По различным критериям переходите в разные location'ы, где 
применяются разные ограничения.

Maxim Dounin



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