rewrite в именованный location
Igor Sysoev
is at rambler-co.ru
Thu Jul 30 16:49:41 MSD 2009
On Thu, Jul 30, 2009 at 04:45:28PM +0400, Maxim Dounin wrote:
> 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. обрабатывать посты в
> отдельной конфигурации) так не сделаешь.
У меня есть идея сделать по аналогии c xslt:
location / {
...
}
location / [$arg_one] {
...
}
location / [$request_method = POST] {
...
}
--
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list