ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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



 




Copyright © Lexa Software, 1996-2009.