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