ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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]






 




Copyright © Lexa Software, 1996-2009.