1) При запросе = http://h2.servik.com/index.htm получаю сожержимое
файла /opt/nginx/servik/host2/index.htm (как и хотел).
2) При запросе = http://h2.servik.com/ получаю 404 (open()
"/opt/nginx/servik/host2/host2/index.htm" failed (2: No such file or
directory)).
То есть если файл указан явно, то все ок, если нет, то он находит файл
в соответствии с директивой index, но при этом дублирует вставку
переменной в результат rewrite.
Кстати, если каталог host2 удалить, то он говорит уже 404
("/opt/nginx/servik/host2/index.html" is not found (2: No such file or
directory)), спотыкаясь, как я понимаю, еще на моменте перед поиском
индекса в каталоге.
Короче, как выяснилось, что повторяет он кусок строки с начала и до
следующего за вставляемой переменной символа... то есть так:
rewrite ^/(.*)$ /host$vhost_id/$1 break; дает http://h2.servik.com/=> /opt/nginx/servik/host2/host2/index.htm
rewrite ^/(.*)$ /xxx/host$vhost_id/$1 break; дает
http://h2.servik.com/ => /opt/nginx/servik/xxx/host2/xxx/host2/index.htm
ну и, наконец,
rewrite ^/(.*)$ $vhost_id/$1 break; дает http://h2.servik.com/ =>
/opt/nginx/servik2/index.htm
как результат, получилось обойти это все "хаком" следующего вида:
root /opt/nginx/servik/host;
и потом:
rewrite ^/(.*)$ $vhost_id/$1 break; дает http://h2.servik.com/ =>
/opt/nginx/servik/host2/index.htm, что и требовалось... но как-то
воооообще криво и неочевидно...
P.S. Извиняюсь за флуд в мейллисте, но писал в процессе того, как
разбирался с "глюком" (или глюком?)...