[mdk-re] Apache 1.3.20 - troubles with virtual hosts and more...
AT
=?iso-8859-1?q?alexey=5Ftourbin_=CE=C1_mail=2Eru?=
Вт Сен 18 05:57:01 MSD 2001
> > В документации (manual/vhost/details.html) написано:
> >
> > Unless a NameVirtualHost directive is used for a specific IP
> > address
> > the first vhost with that address is treated as an IP-based
> > vhost.
> > In 1.3.13 and later that includes the IP address *.
> >
> По IP адресам... Не хотелось... Кстати, вылечилось прописанием
Нет, вы меня неправильно поняли. Именно на одном IP-адресе, который указан
во всех виртуальных хостах в качестве VirtualHost. И имени хоста в
ServerName.
> директив NameVirtualHost <имя>. Опять же, после пересборки. То
В приведённой цитате как раз и сказано, что если нет директивы
NameVirtualHost, то первый попавшийся VirtualHost будет отвечать на любые
запросы по соответствующему IP-адресу.
В Апаче, по правде говоря, несколько запутанная концепция виртуальных
хостов -- слишком много неочевидных правил по умолчанию и т.п.
Всё, что нужно понять, что на самом деле нет никаких "виртуальных
серверов", есть только один TCP сокет который слушает соединения на 80
порту. И есть поле Host в заголовке HTTP запроса, по которому апач
определяет, на какой vhost этот запрос перебрасывать.
Но из-за того, что апач умеет bind'иться на несколько адресов и слушать по
нескольким портам (для каждой пары IP+Port создается отдельный сокет),
алгоритм усложняется:
Если для данного сокета (IP+Port) есть директива NameVirtualHost, то
проходим *по всем* виртуальным хостам и смотрим:
1) Удовлетворяют ли данный хост требованию IP+Port. Здесь может быть
сделан лишний DNS resolve, если в хосте явно не указан IP-адрес (см.
документацию).
2) Соответствует ли имя хоста HTTP заголовку Host.
Если же для сокета не находится NameVirtualHost, то Апач ограничивается
только первым этапом. Что и происходило в Вашем случае. Или вроде того.
> есть, по сути дела конфиги те же, spec тот же а результат
> разный. Теперь еще и apt ругается.
Апач по древней и священной традиции следует собирать из тарболла. ;)
__
AT
Подробная информация о списке рассылки community