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

Igor Sysoev igor на sysoev.ru
Пт Июл 22 18:25:55 UTC 2011


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
> 			fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
> 			include fastcgi_params;
> 			fastcgi_pass node-$1.local.worldoftanks.ru:9000;
> 
> Помогает set перед реврайтом. Но интересно, где это задокументировано.

Пока нигде. Любое регулярное выражение сбрасывает предыдущие выделения.

Но в данном случае rewrite не нужен: /status можно сразу указать в
fastcgi_param:

   fastcgi_param SCRIPT_FILENAME $document_root/status;

Кроме того, можно использовать именованное выделение:

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

Ну и наконец, если думать о масштабируемой конфигруации, то я бы сделал так:

   location /node- {
       location ~ ^/node-(?<NODE>[0-9])$ {
           fastcgi_pass node-$NODE.local.worldoftanks.ru:9000;
           fastcgi_param SCRIPT_FILENAME $document_root/status;
           include fastcgi_params;
       }
   }


-- 
Игорь Сысоев
http://sysoev.ru



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