переменный 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