Re: ngx http limit req module и реальное применение

Maxim Dounin mdounin на mdounin.ru
Вс Июл 17 17:57:48 UTC 2011


Hello!

On Sun, Jul 17, 2011 at 01:49:26PM -0400, vagner wrote:

> Я засмотрелся на использование
> подобной защиты на vkontakte.ru:
> http://vkontakte.ru/blank.php?code=0
> У них фронтендом используется nginx -
> насколько понимаю они организовали
> такой лимит как раз средствами данного
> модуля. 
> Если поставить только на динамический
> контент - реально ли организовать такой
> не редирект, или страница просто
> загрузится не полностью?

При срабатывании лимита limit_req вернёт ошибку 503.  Обработать 
её можно как угодно с помощью директивы error_page, в том числе 
выдать редирект куда вам больше нравится.  Подробности 
тут:

http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#error_page

Maxim Dounin

> 
> Maxim Dounin Wrote:
> -------------------------------------------------------
> > Hello!
> > 
> > On Sun, Jul 17, 2011 at 12:58:22PM -0400, vagner
> > wrote:
> > 
> > > Подскажите, пожалуйста,
> > данным модулем
> > > можно пользоваться при
> > динамическом
> > > контенте? Дело в том, что
> > когда я
> > > подключаю данный модуль,
> > страницы
> > > перестают правильно
> > грузиться (сайт на
> > > php - бекэнд fcgi). Да и если
> > сделать rate=1r/s -
> > > то от страницы грузится
> > только текст:(
> > 
> > Потому что любая
> > картинка/css/javascript - это
> > дополнительный 
> > запрос, и браузер пытается
> > делать их сразу. 
> > Естественно при 
> > скорости 1r/s эти запросы
> > попадают под ограничение и
> > не 
> > обслуживаются, с понятными
> > последствиями для вида
> > сайта.
> > 
> > Я бы рекомендовал ставить
> > ограничение только на
> > динамический 
> > контент, т.е. там, где у вас
> > делается fastcgi_pass.  Тогда и 
> > бекенд будет перегрузить
> > непросто, и статика будет
> > грузиться 
> > нормально.
> > 
> > > Помогите разобраться pls с
> > этим модулем -
> > > мануал почитал, но видимо
> > просветления
> > > не пришло:( Моя конфа:
> > > 
> > > http {
> > >     limit_req_zone $binary_remote_addr
> > zone=beta:10m rate=700r/s;
> > > ....
> > > ....
> > > ....
> > > server {
> > > listen 80 default;
> > > limit_req zone=beta nodelay;
> > 
> > Кроме того, не забываем
> > ставить
> > 
> >     limit_req ... burst=<число>
> > 
> > это позволяет пропускать
> > пики, которые вполне
> > встречаются у 
> > реальных пользователей, но
> > при этом ограничивать
> > среднюю 
> > скорость разумным
> > значением.
> > 
> > Maxim Dounin
> > 
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru at nginx.org
> > http://nginx.org/mailman/listinfo/nginx-ru
> 
> Posted at Nginx Forum: http://forum.nginx.org/read.php?21,212493,212495#msg-212495
> 
> 
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru



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