У меня есть сервер Ubuntu Hardy, используемый в качестве веб-сервера с Apache 2.2. Я пытаюсь настроить его с именованными виртуальными хостами, и в моем файле /etc/apache2/apache2.conf у меня есть следующие строки:
NameVirtualHost *
Include /etc/apache2/sites-enabled/
У меня есть два файла с включенными сайтами. Один из них содержит:
<VirtualHost *>
ServerAdmin webmaster@met.no
ServerName arcticdata.met.no
DocumentRoot /metno/metamod/arcticdata/htdocs
...
</VirtualHost>
Другой похож, но с другим ServerName и DocumentRoot.
Если я запускаю apachectl configtest, я получаю следующее предупреждение:
[warn] NameVirtualHost *:0 has no VirtualHosts
Но в любом случае кажется, что механизм виртуального хоста работает, поскольку я получаю файл index.html, помещенный в DocumentRoot в обоих случаях.
Но я также использую перенаправление на процесс катализатора на том же сервере, и эти перенаправления, похоже, не работают:
ProxyPass /metamod/ http://127.0.0.1:3011/
ProxyPassReverse /metamod/ http://127.0.0.1:3011/
Hovever, если я ввожу IP-адрес и номер порта в -directive (вместо *) эти редиректы неожиданно работают. Но тогда у меня есть другая проблема. Теперь запущенный apachectl configtest выдает следующий вывод:
[warn] VirtualHost 157.249.32.169:80 overlaps with VirtualHost 157.249.32.169:80, the first has precedence, perhaps you need a NameVirtualHost directive
[warn] NameVirtualHost *:0 has no VirtualHosts
и работает только первый виртуальный хост.
Я также запускаю аналогичную настройку на lucid box, и это работает нормально. Есть ли изменения в настройке Apache 2.2 между hardy и lucid? У выносливой коробки есть Apache 2.2.8, а у ясной коробки есть Apache 2.2.14.
Любые предложения приветствуются.
Эгиль
Исправьте конфигурацию apache так, чтобы порты aprobiate были свободны.
NameVirtualHost *:80
NameVirtualHost *:443
и
<VirtualHost *:80>
</VirtalHost>
Я бы порекомендовал вам использовать адрес: обозначение порта, как указано в руководстве по apache:
http://httpd.apache.org/docs/2.2/mod/core.html# namevirtualhost
Вероятно, что-то изменилось в коде apache, так как похоже, что по умолчанию это порт 0 в hardy, но ваши сайты по умолчанию используют порт 80.
например. измените его на:
NameVirtualHost *:80
и
<VirtualHost *:80>
Если это не сработает, используйте:
NameVirtualHost 157.249.32.169:80
и
<VirtualHost 157.249.32.169:80>