Почему ProxyPass не работает в Apache Hardy Box с виртуальными хостами?

У меня есть сервер 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.

Любые предложения приветствуются.

Эгиль

2
задан 5 March 2013 в 18:53

2 ответа

Исправьте конфигурацию apache так, чтобы порты aprobiate были свободны.

 NameVirtualHost *:80
 NameVirtualHost *:443

и

<VirtualHost *:80>
</VirtalHost>
0
ответ дан 5 March 2013 в 18:53

Я бы порекомендовал вам использовать адрес: обозначение порта, как указано в руководстве по 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>
0
ответ дан 5 March 2013 в 18:53

Другие вопросы по тегам:

Похожие вопросы: