rewrite в именованный location

Maxim Dounin mdounin at mdounin.ru
Thu Jul 30 16:45:28 MSD 2009


Hello!

On Thu, Jul 30, 2009 at 01:55:56PM +0400, Igor Sysoev wrote:

> On Thu, Jul 30, 2009 at 01:42:28PM +0400, Alex, the Marrch Ca'at wrote:
> 
> > Ну да. Вот живой пример из моего конфига:
> > 
> >     location ^~ /index.php {
> >         access_log /var/log/nginx/access_log main_cached;
> > 
> >         default_type text/html;
> >         memcached_gzip_flag 18;
> >         gzip on;
> >         gunzip on;
> > 
> >         set $memcached_key "TSites::Index::$host";
> >         memcached_pass localhost:11211;
> > 
> >         error_page 404 502 504 = @fcgi;
> >     }
> > 
> >     location ~ \.php$ {
> >         access_log /var/log/nginx/access_log main;
> >         fastcgi_pass   backend;
> >         fastcgi_index  index.php;
> >         fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
> >         include       /etc/nginx/fastcgi_params;
> >     }
> > 
> >     location @fcgi {
> >         internal;
> > 
> >         access_log /var/log/nginx/access_log main;
> >         fastcgi_pass   backend;
> >         fastcgi_index  index.php;
> >         fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
> >         include       /etc/nginx/fastcgi_params;
> >     }
> > 
> > Этот же код из @fcgi дублируется еще в двух location-ах, поскольку
> > извращаться с искусственным перенаправлением ошибки мне не хотелось. А
> > так везде можно написать goto @fcgi; - что будет и компактнее и
> > понятнее и проще поддерживать.
> 
> На мой взгляд, такое синтаксически нужно делать так:
> 
>    location  ~\.php$
>              @fcgi
>              ...
>    {
>         ...
>    }

Такое - да.  А вот условные переходы (e.g. обрабатывать посты в 
отдельной конфигурации) так не сделаешь.

Maxim Dounin





More information about the nginx-ru mailing list