переменный root в location

Igor Sysoev is at rambler-co.ru
Wed Feb 8 19:44:45 MSK 2006


On Wed, 8 Feb 2006, Alexey Popov wrote:

> Igor Sysoev пишет:
>>> nginx-0.3.20/FreeBSD 6-STABLE. Пытаюсь настроить отдачу файлов с 
>>> виртуального хостинга, на котором корень сервера вычисляется по его имени 
>>> (в апаче для этого используется mod_vhost_alias):
>>> 
>>> location / {
>>>   if ($host ~* (([a-z0-9-])([a-z0-9-])[a-z0-9-]*)\.([a-z0-9-]+\.[a-z]+)$) 
>>> {
>>>       set $rootdir /all/hosting/$4/$2/$3/$1/;
>>>       }
>>>       access_log      /var/log/nginx8080_access_log 123;
>>>       root    $rootdir;
>>> }
> 2006/02/08 19:32:35 [error] 597#0: *12102 open() 
> "/usr/local/etc/nginx/$rootdir/
> myfile.jpg" failed (2: No such file or directory), client: xx.xx.xx.xx, 
> server:
> myhosting.ru, URL: "/myfile.jpg", host: "tm.myhosting.ru:8080"
>
> Получается, что root нельзя переменными задавать? А как же сделать тогда? Все 
> виртуальные хосты в конфиг вписывать нежелательно.

root в данном случае должен начинаться с "/":

          set $rootdir all/hosting/$4/$2/$3/$1/;

      ...

      root    /$rootdir;


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





More information about the nginx-ru mailing list