server_name

Ruslan Ermilov ru at nginx.com
Tue Nov 20 13:44:34 UTC 2012


On Tue, Nov 20, 2012 at 01:48:59PM +0200, Gregory Edigarov wrote:
> On 11/20/2012 01:46 PM, Gregory Edigarov wrote:
> > On 11/20/2012 01:35 PM, Anton Yuzhaninov wrote:
> >> On 11/20/12 15:31, Gregory Edigarov wrote:
> >>>>
> >>>> try_files /subdoms/$subdom @fallback;
> >>>>
> >>> написал, но почему-то не работает.
> >>> все уходит на fallback.
> >>> /subdoms/$subdom - сами по себе являются подкаталогами, может это 
> >>> быть причиной?
> >>
> >> что касается try_file наверно как то так:
> >>
> >> root /subdoms/$subdom;
> >> ...
> >> try_file $uri $uri/ @fallback;
> >>
> > все-равно не хочет. походу $subdom таки  пустой. но почему????
> в структуре /subdoms/$subdom - 100% существует и является подкаталогом

В варианте root /subdoms/$subdom каталог /subdoms/$subdom должен
существовать от корня файловой системы.  Он точно у вас там есть?

Оригинальный "try_files /subdoms/$subdom" как бы намекает, что нет,
т.к. try_files ищет относительно root, который у вас не указан, и
не факт что равен /.

Если сделать правильно, то должно работать:

server {
server_name ~^(.*).example.com$;
location / {
root /tmp/foo/subdoms/$1;
try_files $uri $uri/ =404;
}

$ grep ^ /tmp/foo/subdoms/test*/*
/tmp/foo/subdoms/test1/foo:foo
/tmp/foo/subdoms/test1/index.html:this is test1
/tmp/foo/subdoms/test2/index.html:this is test2
$ curl http://test1.example.com:8000/
this is test1
$ curl http://test2.example.com:8000/
this is test2
$ curl http://test1.example.com:8000/foo
foo

(Разумеется в такой конструкции лучше, чтобы такой сервер не был
сервером по умолчанию для данного порта.)



More information about the nginx mailing list