Welcome! Log In Create A New Profile

Advanced

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

Maxim Dounin
March 11, 2010 11:38AM
Hello!

On Thu, Mar 11, 2010 at 04:45:50PM +0200, Sergej Kandyla wrote:

> Maxim Dounin wrote:
> >>Но как направить в различные локейшены указанные айпи,
> >>таким образом чтобы url для end-users был одинаков?
> >
> >Внутренние редиректы и/или переходы в именованные location'ы всех
> >спасают.
>
> супер! Меня тоже спасло ;) Респект!
>
>
> Но я обнаружил парочку непонятных моментов.
>
> 1) если стоит директива limit_req_log_level notice;
> то в error_log о limits не пишитеся вообще ничего.
> (Linux 2.6.18-164.11.1.el5.028stab068.3 nginx/0.8.34)

error_log при этом включён с каким уровнем логгирования?

> 2) вместо кода 403
>
> error_page 403 = @vogons;
> if ($bad) {
> return 403;
>
>
> можно использовать любой другой код?
> вернее со стороны клиента это будет выглядеть легально и прозрачно?

Да.

> 3) неясна логика работы burst.

burst - размер корзины, не более того

http://en.wikipedia.org/wiki/Leaky_bucket
http://en.wikipedia.org/wiki/Token_bucket

[...]

> Т.е. как видно на основе ответов курла и записей в error_log,
> каждый последующий запрос обрабатывается в среднем на секунду
> больше, чем предыдущий, по истечению моего burst=10,
> получаю 503, что законно.
>
> На сколько я понял документацию:
> http://sysoev.ru/nginx/docs/http/ngx_http_limit_req_module.html
> "Если скорость запросов превышает описанную в зоне, то их обработка
> запроса задерживается так, чтобы запросы обрабывались с заданной
> скоростью. "
>
> каждый мой последующий запрос должен задерживаться на минуту
> (согласно rate=1r/m) или N минут если это N запрос в пределах burst.
> В принципе текущее поведение с задержкой на секунду сделано вполне
> мудро, но вопрос в том, как оно на самом деле должно
> обрабатываеться.
> Фича\баг ?

Бага. Чтобы получить описанный в доках CBR должно задерживаться
на (сейчас в корзине) / rate, по факту задерживается на (сейчас в
корзине).

Впрочем, мне лично всегда казалось вообще неправильным пытаться
задерживать запросы. Возможности для DoS'а это только
увеличивает. Гораздо правильнее использовать описанный в доках
nodelay.

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

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

Sergej Kandyla March 11, 2010 07:08AM

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

Aleksandr Sytar March 11, 2010 07:18AM

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

Maxim Dounin March 11, 2010 07:34AM

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

Sergej Kandyla March 11, 2010 07:46AM

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

Daniel Podolsky March 11, 2010 08:04AM

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

Maxim Dounin March 11, 2010 08:20AM

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

Sergej Kandyla March 11, 2010 09:46AM

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

Maxim Dounin March 11, 2010 11:38AM

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

Sergej Kandyla March 11, 2010 11:58AM

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

Gena Makhomed March 11, 2010 12:52PM

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

Kirill A. Korinskiy March 12, 2010 08:08AM

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

Maxim Dounin March 12, 2010 10:26AM

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

Kirill A. Korinskiy March 12, 2010 10:40AM

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

Maxim Dounin March 12, 2010 11:28AM

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

Kirill A. Korinskiy March 12, 2010 12:16PM

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

Maxim Dounin March 12, 2010 07:20PM

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

Kirill A. Korinskiy March 15, 2010 09:24AM

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

Maxim Dounin March 15, 2010 09:48AM

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

Kirill A. Korinskiy March 15, 2010 10:04AM

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

Sergej Kandyla March 15, 2010 10:12AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 148
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready