Re: limit conn в location несколько раз

SoulReaver nginx-forum на nginx.us
Сб Окт 8 21:13:14 UTC 2011


Реализовать функционал limit_conn можно и с
помощью iptables в какой-то мере (nginx умеет
более гибко, так как можно применить
вплоть до location), но как реализовать
limit_req? А необходимость нескольких limit_req
в контексте одного локейшена очевидна.
Кстати, Игорь уже давно хотел
реализовать данный функционал
http://forum.nginx.org/read.php?21,27715 но видимо пока
руки не дошли....

Илья Кучмин Wrote:
-------------------------------------------------------
> Всегда удивляли позывы
> сделать из продукта
> всеобъемлющий комбайн,
> когда проще открыть
> документацию по iptables,
> документацию по tcp, и
> все что нужно ограничить.
> 
> Не забывайте что и Linux и
> FreeBSD, давно являются
> дистрибутивами.
> 
> 2011/9/30 Maxim Dounin <mdounin at mdounin.ru>:
> > Hello!
> >
> > On Fri, Sep 30, 2011 at 04:09:03PM +0400,
> Виктор Вислобоков wrote:
> >
> >> Привет всем.
> >>
> >> До этого пользовался
> nginx-0.6.x. Тут поставил nginx-1.0.6.
> В итоге
> >> стало ругаться вот на
> такое:
> >>
> >>     limit_zone                    
>      conn_from_one_ip
> >> $binary_remote_addr 64m;
> >>     limit_zone                    
>      conn_for_one_client $host 48m;
> >>
> >> ....
> >>
> >>       location / {
> >>             limit_conn            
>      conn_from_one_ip 4;
> >>             limit_conn            
>      conn_for_one_client 8;
> >>             proxy_pass            
>      http://127.0.0.1;
> >>             proxy_redirect          
>    off;
> >>         }
> >> nginx: [emerg] "limit_conn" directive is
> duplicate
> >>
> >> В документации НЕ
> написано, что нельзя
> несколько раз limit_conn. В
> >> changelog не написано, когда
> поведение nginx изменилось,
> что он
> >> перестал воспринимать
> более одной директивы.
> Разумеется если убрать
> >> одну любую - работает без
> проблем.
> >>
> >> Итак два вопроса:
> >> 1. Можно или нельзя
> всё-таки более одного
> limit_conn?
> >
> > Сейчас - нельзя.
> >
> >> 2. Если нельзя, то почему и
> нельзя ли вернуть как было,
> потому что
> >> реально нужно.
> >
> > Было - так же, но ошибки не
> выдавалось.  Работала
> какая-то одна,
> > если мне не изменяет
> память - последняя.
> >
> >> 3. Если нельзя и вернуть
> нельзя, то как выходить из
> ситуации?
> >
> > По хорошему - надо сесть и
> сделать поддержку
> нескольких
> > limit_conn.  Для limit_conn это
> просто (для limit_req -
> > нетривиальнее, там та же
> самая проблема).
> >
> >> 4. Если нельзя, то почему
> ничего нет на эту тему в
> документации?
> >
> > В документации обычно
> указывается, если
> директиву можно
> > использовать более одного
> раза.
> >
> > Maxim Dounin
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru at nginx.org
> >
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,216104,216409#msg-216409



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