Apache: VirtualHost для директорий

Wicked

Новичок
Apache: VirtualHost для директорий

Имеется сервер 192.168.1.62 без dns.

Стоить задача создать более-менее независимые виртуальные хосты для песочниц.
Сделал такую структуру директорий в /var/www/html/:
Код:
/wicked
   /data (тут хранятся кэши)
   /htdocs (должна быть доступна через [url]http://192.168.1.62/wicked/[/url])
   /logs (логи апача, логи пхп, логи приложения)
/testing
   /data (тут хранятся кэши)
   /htdocs (должна быть доступна через [url]http://192.168.1.62/testing/[/url])
   /logs (логи апача, логи пхп, логи приложения)
Таким образом, пытаюсб убить еще одного зайца: чтобы data и logs в принципе не были доступны через http, т.к. уровень c этими директориями пропускается.

Для этого сделал такие настройки в httpd.conf:

Код:
NameVirtualHost 192.168.1.62
<VirtualHost 192.168.1.62>
   ServerPath /wicked
   DocumentRoot /var/www/html/wicked/htdocs/
   ErrorLog /var/www/html/wicked/logs/httpd/error_log
   LogLevel warn
   CustomLog /var/www/html/wicked/logs/httpd/access_log combined
</VirtualHost>
<VirtualHost 192.168.1.62>
   ServerPath /testing
   DocumentRoot /var/www/html/testing/htdocs/
   ErrorLog /var/www/html/wicked/logs/testing/error_log
   LogLevel warn
   CustomLog /var/www/html/wicked/logs/testing/access_log combined
</VirtualHost>
Но при такой конфигурации, обращение к 192.168.1.62/testing реально пытается достать 192.168.1.62/wicked/testing (/var/www/html/wicked/htdocs/testing), .т.е попросту обрабатывается первым виртуалхостом, который ловит не только /wicked, но и все прочее. Как я понял, ServerPath срабатывает только тогда, когда браузер не посылает header "Host:". В моем же случае браузер отсылает Host: 192.168.1.62. Попробовал избавиться от этого хедера с помощью mod_headers ( RequestHeader unset Host ). Не помогло.

Использовать виртуалхосты, основанные на DNS не хочется, т.к. это придется вовлекать админов, когда надо будет создать новую песочницу. Вариант с портами - имхо некрасиво.
 

hermit_refined

Отшельник
Использовать виртуалхосты, основанные на DNS не хочется, т.к. это придется вовлекать админов, когда надо будет создать новую песочницу.
почему не хотите сразу прописать *.test.com?
а в httpd.conf уже добавлять хосты по мере появления.
 

Wicked

Новичок
т.е. можно создать запись в нашем конторском DNS, что все субдомены этой тачки также будут 192.168.1.62 ?
 

Wicked

Новичок
Спасибо :) Оказалось все просто.

-~{}~ 09.03.07 17:20:

осталась единственная непонятка: почему запрос myhost обрабатывается VirtualHost'ом wicked.myhost
Код:
NameVirtualHost 192.168.1.62
<VirtualHost 192.168.1.62>
   ServerName wicked.myhost
   ServerAlias *.wicked.myhost wicked.myhost.MYZONE.LOCAL *.wicked.myhost.MYZONE.LOCAL
   DocumentRoot /var/www/html/wicked/htdocs/
   #logs ...
</VirtualHost>
Нужно ли создавать виртаульный хост для myhost ?
 
Сверху