Re: limit_conn в location несколько раз
Maxim Dounin
mdounin на mdounin.ru
Пт Сен 30 12:35:00 UTC 2011
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