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

Maxim Dounin mdounin на mdounin.ru
Чт Мар 11 16:18:40 MSK 2010


Hello!

On Thu, Mar 11, 2010 at 02:44:18PM +0200, Sergej Kandyla wrote:

[...]

> >>PS. вся эта затея нужна для того чтобы по различным критериям
> >>выставлять различный limit_req в пределах заданного сервера. В
> >>конкретном случае - для различных айпи делать различные limit_req.
> >
> >По различным критериям переходите в разные location'ы, где
> >применяются разные ограничения.
> >
> >Maxim Dounin
> >
> да, я ожидал подобный совет ;)
> 
> Но как направить в различные локейшены указанные айпи,
> таким образом чтобы url для end-users был одинаков?

Внутренние редиректы и/или переходы в именованные location'ы всех 
спасают.

    limit_req_zone $binary_remote_addr zone=mostlyharmless:10m rate=10r/s;
    limit_req_zone $binary_remote_addr zone=vogons:10m rate=1r/m;

    ...

    location / {
        recursive_error_pages on;
        error_page 403 = @vogons;

        if ($bad) {
            return 403;
        }

        limit_req zone=mostlyharmless burst=10 nodelay;

        ...
    }

    location @vogons {
        limit_req zone=vogons burst=1 nodelay;
        ...
    }

Maxim Dounin



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