Welcome! Log In Create A New Profile

Advanced

Re: Реализация multiple limit_req

Maxim Dounin
December 19, 2011 03:28AM
Hello!

On Sun, Dec 18, 2011 at 10:00:51PM +0200, Gena Makhomed wrote:

> On 14.12.2011 18:24, Maxim Dounin wrote:
>
> >E.g. типичная ситуация для хостинга, когда лимиты хочется на
> >каждый $host (чтобы один атакуемый сайт не мог съесть все
> >ресурсы), и на ip (чтобы с одного ip-адреса, вздремнув на ^R,
> >нельзя было съесть все ресурсы):
> >
> > limit_req<per-host>;
> > limit_req<per-ip>;
> >
> >Если атакуют $host, то всё хорошо.
> >
> >Если ^R, то проблема: легко "выедается" лимит на $host (хотя
> >запросы реально не обслуживаются), и тем самым нужный хост
> >фактически блокируется.
> >
> >В данном конкретном случае - проблема легко решается сменой
> >порядка применения лимитов: сначала per-ip, потом per-host.
> >
> >Вопрос: есть ли в реальной жизни задачи, где проблема так *не*
> >решается?
> >
> >(С теоретической точки зрения - понятно, что такие задачи есть.
> >Интересуют сколько-нибудь относящиеся к реальной жизни примеры.)
>
> выше предполагается, что все запросы имеют примерно одинаковый вес.
> в рельной жизни - запросы к backend`у бывают как очень легкими,
> которые отрабатывают за десятые/сотые доли секунды, так и очень
> тяжелыми, обработка которых на backend`е занимает несколько секунд
> или даже несколько десятков секунд.
>
> в haproxy есть очень изящное решение:
>
> maxconn <maxconn>
> maxqueue <maxqueue>
>
> это почти идеальное решение для выравнивания нагрузки на backend,
> так чтобы никакой $host не занял 100% ресурсов backend`а,
> и в то же время, чтобы не было 503 ошибок при небольшом
> и временном всплеске нагрузки на какой-то $host.
> например:
>
> maxconn 1
> maxqueue 128
>
> или
>
> maxconn 1
> maxqueue 1024
>
> с помощью
>
> limit_req<per-host>;
>
> такого плавного выравнивания нагрузки получить нельзя,
> потому что backend или будет перегружен "тяжелыми" запросами,

С помощью limit_req "такого плавного выравнивания получить
нельзя", потому что он для этого не предназначен.

А по теме есть что сказать?

Maxim Dounin

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

Реализация multiple limit_req

Валентин Бартенев December 14, 2011 09:06AM

Re: Реализация multiple limit_req

Maxim Dounin December 14, 2011 09:24AM

Re: Реализация multiple limit_req

Валентин Бартенев December 14, 2011 10:40AM

Re: Реализация multiple limit_req

Maxim Dounin December 14, 2011 11:26AM

Re: Реализация multiple limit_req

Валентин Бартенев December 14, 2011 01:00PM

Re: Реализация multiple limit_req

Maxim Dounin December 14, 2011 01:30PM

Re[2]: Реализация multiple limit_req

Михаил Монашёв December 14, 2011 01:56PM

Re: Реализация multiple limit_req

Maxim Dounin December 15, 2011 07:40AM

Re[2]: Реализация multiple limit_req

Михаил Монашёв December 16, 2011 11:10AM

Re[3]: Реализация multiple limit_req

Михаил Монашёв December 16, 2011 11:22AM

Re: Реализация multiple limit_req

Maxim Dounin December 16, 2011 12:06PM

Re: Реализация multiple limit_req

Gena Makhomed December 18, 2011 03:02PM

Re: Реализация multiple limit_req

Maxim Dounin December 19, 2011 03:28AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 303
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