Re: Не срабатывает limit_conn и limit_req?

Ruslan Ermilov ru at nginx.com
Mon Mar 4 07:24:21 UTC 2013


On Mon, Mar 04, 2013 at 02:57:49AM +0400, denis wrote:
> debian 6, nginx 1.2.7
> ...
> http {
>    limit_conn_zone $binary_remote_addr zone=perip:10m;
>    limit_conn_zone $server_name zone=perserver:10m;
> 
>    limit_req_zone  $server_name zone=lreq:10m   rate=1r/m;
> 
>    server { ....
>      location = /redir.php {
>        #limit_conn perserver 1; #(1)
>        limit_req   zone=lreq  burst=1; #(2)
>        #error_page 503 =302 /redir-503.php;
>        error_page 503 =302 https://ext-site.ru/under_construction.html;
> 
>        limit_conn_log_level info;
> 
>        return http://ext-site.ru/content;
>      }
> }}
> 
> Сама секция работает, редирект всегда на ext-site.ru/content работает, а 
> вот ограничение не срабатывает. Также с вариантом, когда 
> раскомментирован (1) и закомментирован (2).
> Что не так?

Обработка запросов в nginx происходит в разных фазах.

Директивы модуля ngx_http_rewrite_module (директива return в т.ч.)
срабатывают на более ранних фазах, чем модули ngx_http_limit_*.

Описанное выше поведение ожидаемо.



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