Re: ngx http limit req module и реальное применение

Maxim Dounin mdounin на mdounin.ru
Пн Июл 18 09:29:11 UTC 2011


Hello!

On Mon, Jul 18, 2011 at 05:27:10AM -0400, vagner wrote:

> Сделал так:
> http {
> (...)
> geo $white{
> default 0;
> include /etc/white;
> }
> 
> geo $black{
> default 0;
> include /etc/black;
> }
> limit_req_zone $binary_remote_addr zone=beta:10m rate=1r/s;
> 
> server {
> (...)
> error_page 418 = @php_limit;
>  
> location ~ \.php$ {
>                 if ($black) {
>                 return 418;
>                 }
>                 fastcgi_pass   127.0.0.1:9000;
>                 fastcgi_index  index.php;
>                 fastcgi_param  SCRIPT_FILENAME  
> /home/hg/repos/hg.books.ilovexq.ru/pages$fastcgi_script_name;
>                 include fastcgi_params;
>         }
> location php_limit {

- location php_limit {
+ location @php_limit {

>                 limit_req zone=black nodelay;
>                 fastcgi_pass   127.0.0.1:9000;
>                 fastcgi_index  index.php;
>                 fastcgi_param  SCRIPT_FILENAME  
> /home/hg/repos/hg.books.ilovexq.ru/pages$fastcgi_script_name;
>                 include fastcgi_params;
>         }
> }
> 
> Это срабатывает, но только для $black
> отдает 500 код:(

Потому что у вас нет location'а @php_limit, в котором должны 
обрабатываться запросы от $black.

Maxim Dounin



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