ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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 mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.