Оптимальная конфигурация для vhosting'а

Alexey N. Kovyrin alexey at kovyrin.net
Mon Dec 26 01:50:35 MSK 2005


Alexey N. Kovyrin пишет:
> Доброе время суток,
>
> Возник такой вопрос: как сделать оптимальнее в конфигурации маппинг 
> виртуальных хостов на домашние каталоги пользователей виртуалхостинга?
> У меня есть таблица соответствий вида
>
> some_vhost_name => /data/home/hostNNN
>
> Я понимаю, что можно сделать 10000-50000 блоков server, но как-то 
> некрасиво, имхо... нельзя ли использовать map+rewrite как-нибудь?
Что-то я не понимаю в логике работы rewrite... Сделал такую тестовую 
конфигурацию:

map $server_name $vhost_id {
      default           0;
      h1.servik.com     1;
      h2.servik.com     2;
}

server {
  listen       8080;
  server_name  home *.servik.com;

location / {
            root servik;
            index  index.html index.htm;

            rewrite ^/(.*)$ /host$vhost_id/$1 break;
}


Получил:
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)), спотыкаясь, как я понимаю, еще на моменте перед поиском 
индекса в каталоге.

Короче - ничего не понимаю....

-- 
/Scoundrel    [http://kovyrin.info]






More information about the nginx-ru mailing list