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

Sergey Shepelev temotor at gmail.com
Thu Jul 30 17:21:40 MSD 2009


И еще так можно было бы удобно писать кучу локейшонов на конкретные
урлы (типа = / ).

Может разделить понятия "конфигурация" и "локейшн" и хранить отдельный
маппинг location -> config?

2009/7/30 Igor Sysoev <is at rambler-co.ru>:
> 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
>             ...
>   {
>        ...
>   }
>
> Кстати, это ещё и сэкономит память. Только там есть одна проблема в том,
> что имя location'а хранится в конфигурации. Как сделать, чтобы несолько
> location'ов имели одну и ту же конфигруацию - пока не знаю.
>
>> Sincerely yours -
>> Alex, the Marrch Ca'at
>>
>> 2009/7/30 Igor Sysoev <is at rambler-co.ru>:
>> > On Thu, Jul 30, 2009 at 12:04:37AM +0700, Bokhan Artem wrote:
>> >
>> >> Kirill A. Korinskiy пишет:
>> >> >Собственно для тех, кому надоело видеть извращения типо:
>> >> >
>> >> >error_page 503=@name;
>> >> >return 503;
>> >> >
>> >> >Предлагаю патчик:
>> >> >
>> >> >http://catap.ru/blog/2009/07/28/nginx-rewrite-to-named-location/
>> >>
>> >> Игорь, просьба добавить этот функционал в основную ветку, если возможно.
>> >
>> > Я не совсем понимаю модель применения. Что-то вроде
>> >
>> >     location /one {
>> >         goto  @php;
>> >     }
>> >
>> >     location /two {
>> >         goto  @php;
>> >     }
>> >
>> >     location /three {
>> >         goto  @php;
>> >     }
>> >
>> >     location @php {
>> >         ...
>> >     }
>> >
>> > ?
>> >
>> >
>> > --
>> > Игорь Сысоев
>> > http://sysoev.ru
>> >
>> >
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
>


More information about the nginx-ru mailing list