не все локешены получают зачение из регулярки сервера

Peter Leonov gojpeg at gmail.com
Wed Sep 9 16:40:46 MSD 2009


При таком конфиге

server
{
   …
   server_name ~^([A-Za-z\-\.]+)\.retailstars\.ru$;

   set $city $1;
   location /db { root /www/life/new.retailstars.ru/$city; }
   location /index { root /www/life/new.retailstars.ru/$city; }
   location /form { root /www/life/new.retailstars.ru/$city; }
   …
}

Переменная $city определена только в /index, для остальных локейшенов  
это пустая строка.
Отказ от временной переменной $city и использование $1 не помогает.

В логе вот такие ошибки:
   …
   2009/09/09 16:16:37 [error] 21232#0: *1 open() "/www/life/ 
new.retailstars.ru//form/zara/cashier/promo" failed (2: No such file  
or directory), client: 127.0.0.1, server: ~^([A-Za-z\-\.]+) 
\.retailstars\.ru$, request: "GET / HTTP/1.0", subrequest: "/form/zara/ 
cashier/promo", host: "moscow.retailstars.ru"
   …
   2009/09/09 16:16:38 [error] 21232#0: *5 open() "/www/life/ 
new.retailstars.ru//db/metro.json" failed (2: No such file or  
directory), client: 127.0.0.1, server: ~^([A-Za-z\-\.]+)\.retailstars 
\.ru$, request: "GET /db/preload.js HTTP/1.0", subrequest: "/db/ 
metro.json", host: "moscow.retailstars.ru", referrer: "http://moscow.retailstars.ru/ 
"
   …


А если
   set $city $1;
заменить на
   set $city moscow;
то руты в локешнах начинают вести куда надо для сервера  
moscow.retailstars.ru

--
Пётр Леонов




More information about the nginx-ru mailing list