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
|