ПРОЕКТЫ 


  АРХИВ 


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: Fwd: nginx-fastcgi-rewrite



On Friday 16 November 2012 16:39:23 Юрий Гончаров wrote:
> А магия таки есть
> 
> 
>         location ~ ^(/[^/]+) {
>                 try_files $uri $1/accesspoint.php /public/accesspoint.php
> =405;
>                 include fastcgi_params_ru;
>                 set $myuri $uri;
>                 fastcgi_param REQUEST_URI $myuri;
>                 fastcgi_connect_timeout 3600;
>                 fastcgi_send_timeout 3600;
>                 fastcgi_read_timeout 3600;
>                 fastcgi_pass unix:/tmp/php.socket;
>                 client_max_body_size 100m;
>                 root /www/
>         }
> 
> При такой конфигурации set отрабатывает до try_files и сохраняется
> промежуточное значение как надо.
> Если этот же location переписать так что делать не set а
> сразу fastcgi_param REQUEST_URI $uri - тогда будет /public/accesspoint.php
> Получается param сетится уже после try_files а set в location ДО...Магия?
> :)

Директива set относится к модулю rewrite: 
http://nginx.org/en/docs/http/ngx_http_rewrite_module.html
который сам по себе является одним большим "хаком", ибо его правила выполняются 
императивно, в то время, как nginx пытается следовать декларативному стилю.

Порядок директив модуля rewrite имеет значение только между собой в рамках 
одного блока location или server. Вы можете для пущей головоломки будущему 
админу перенести set вообще в самый конец.

А чтобы не ломать себе голову, лучше по возможности избегать программирования
в конфигурации. К сожалению, эта дурная привычка есть у всех пользователей php 
перешедших с apache.

Я и написал в конце: "ещё есть сотня вариантов это получить, той или иной 
степени корявости". Вы один из таких вариантов наглядно привели.

--
Валентин Бартенев
http://nginx.com/support.html
http://nginx.org/en/donation.html
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.