Re: сбрасывается выделение в Location

Maxim Dounin mdounin на mdounin.ru
Пт Июл 22 18:23:52 UTC 2011


Hello!

On Fri, Jul 22, 2011 at 09:06:31PM +0300, Vasil Mikhalenya wrote:

> Уважаемые, подскажите где описано данное поведение
> 
> 		location ~ ^/node-([0-9])$ {
> 			rewrite ^ /status break;   #rewrite сбрасывает выделение в $1,
> соответсвенно получаем unknown host при fastcgi

Переменная $1 - это выделение из последнего выполявшегося 
регулярного выражения.  Поскольку rewrite выполняет регулярное 
выражение ("^"), и в этом регулярном выражении нет сработавших 
выделений, то $1 будет пустым.

> 			fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
> 			include fastcgi_params;
> 			fastcgi_pass node-$1.local.worldoftanks.ru:9000;
> 
> Помогает set перед реврайтом.

Правильнее использовать именованные выделения:

    location ~ ^/node-(?<node>[0-9])$ {
        ...
        fastcgi_pass node-${node}.local.worldoftanks.ru:9000;
    }

> Но интересно, где это задокументировано.

Явно - подозреваю, что нигде.

Maxim Dounin



Подробная информация о списке рассылки nginx-ru