не все локешены получают зачение из регулярки сервера
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