Здравствуйте. <br><br><div class="gmail_quote">15 июня 2010 г. 0:41 пользователь Konstantin Svist <span dir="ltr">&lt;<a href="mailto:fry.kun@gmail.com">fry.kun@gmail.com</a>&gt;</span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Если нельзя включить в обычном режиме, можно ли что-нибудь придумать с<br>
subrequest-ами?<br></blockquote><div>В обычном режиме включить нельзя, хотя Игорь писал в рассылке, что собирается это поправить. Однако это проскакивало давно. </div><div>С сабреквестом включить можно, делая x-accel-redirect. Логика такая: запрос идет в 1й локейшн, в нем стоит 1й limit, на фазе access он отрабатывает, далее  бэкэнд выдает x-accel-redirect на локейшн, в котором стоит второй limit, там же обрабатывается основная часть запроса. У меня работает примерно так. С обычным же рерайтом не уверен что получится, т.к. rewrite быполняется после access.</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div class="h5"><br>
On 06/12/2010 04:55 PM, Konstantin Svist wrote:<br>
&gt; Можно ли подкрутить http_limit_req_module чтобы можно было их несколько<br>
&gt; поставить в один location?<br>
&gt;<br>
&gt; Хочу запретить по двум признакам - по ip адресу 5r/s, а второй по $arg_x<br>
&gt; 20r/s<br>
&gt;<br>
&gt; Такая конфигурация ругается:<br>
&gt;<br>
&gt; location / {<br>
&gt;     limit_req zone=myzone_ip burst=2 nodelay;<br>
&gt;     limit_req zone=myzone_x  burst=2 nodelay;<br>
&gt; ...<br>
&gt;<br>
&gt;&gt;&gt;&gt; [emerg]: &quot;limit_req&quot; directive is duplicate in<br>
&gt;&gt;&gt;&gt;<br>
&gt; /usr/local/nginx/conf/nginx.conf:57<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Придумал немного через заднее место - не ругается, но и не работает<br>
&gt; (т.е. работает только один limit_req):<br>
&gt;<br>
&gt; location / {<br>
&gt;     limit_req zone=myzone_ip burst=2 nodelay;<br>
&gt;     return 404;<br>
&gt;     error_page 404 = @foobar;<br>
&gt; }<br>
&gt; location @foobar {<br>
&gt;     limit_req zone=myzone_x  burst=2 nodelay;<br>
&gt; ...<br>
&gt;<br>
&gt;<br>
&gt; Наверное заработает если добавлю ещё один server через unix socket, но<br>
&gt; хотелось бы обойти..<br>
&gt;<br>
&gt;<br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://nginx.org/mailman/listinfo/nginx-ru</a><br>
</div></div></blockquote></div><br>