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