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

Gena Makhomed gmm на csdoc.com
Чт Мар 11 20:50:49 MSK 2010


On 11.03.2010 18:37, Maxim Dounin wrote:

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

попробовал сделать error_page 777, получил ошибку:

[emerg]: value "777" must be between 400 and 599

гораздо удобнее была бы простая директива goto @name;

есть даже готовые патчи, чтобы не придумывать уникальные числовые коды:

1) http://catap.ru/blog/2009/07/28/nginx-rewrite-to-named-location/#c604

2) http://catap.ru/blog/2009/07/28/nginx-rewrite-to-named-location/

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

однозначно правильнее использовать nodelay  только в том случае,
если боты сервером никак не фильтруются от нормальных пользователей
и на этом сервере находится всего один virtual host.

а если их там много - то ресурсы backend`а закончатся раньше,
чем ресурсы frontend`а и параметр nodelay будет способствовать
ухудшению QoS для остальных сайтов, которые не есть целью атаки.

например, в случае небольших DDoS, которые могут устроить поисковые
машины, слишком часто запрашивая страницы с какого-то определенного
сайта. хотя пользователи остальных сайтов - это люди, а не боты,
и у них приоритет в обслуживании должен быть выше в этом случае.

-- 
Best regards,
  Gena




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