Конфигурация Apache2 VirtualHost (ProxyPass и Alias) работает в Ubuntu, но не в OSX

Я годами использую машину Ubuntu для своей среды разработки и пытаюсь перейти на OSX (Mountain Lion). Единственный сбой на этом этапе - конфигурация apache2.

На машине Ubuntu "apache2 -v" показывает

Server version: Apache/2.2.22 (Ubuntu)
Server built:   Nov  8 2012 21:37:30

На машине OSX "httpd -v" показывает

Server version: Apache/2.2.22 (Unix)
Server built:   Aug 24 2012 17:16:58

Таким образом, вы можете себе представить, что я полностью сбит с толку относительно того, почему конфигурация виртуального хоста плохо переносится.

Следующие биты ProxyPass и Alias ​​моей конфигурации VirtualHost работают очень хорошо, когда используются на моем первом экземпляре apache2, но не на втором. Структура каталогов на обеих машинах

Для всех намерений и целей, конфигурация виртуального хоста выглядит следующим образом

NameVirtualHost *:80

<VirtualHost *:80>

   ProxyPass /img !
   Alias /img /somedir/media/img

   ProxyPreserveHost On
   ProxyPass / http://127.0.0.1:8080/
   ProxyPassReverse / http://127.0.0.1:8080/

</VirtualHost>

целью является то, что apache будет обслуживать все изображения, а сервер приложений на порту 8080 выполняет тяжелую работу (общая схема).

В Ubuntu это прекрасно работает. На MacBook изображения не обслуживаются.

2 ответа

Решение

Оказывается, конфигурация apache по умолчанию определяет очень ограниченную конфигурацию сайта по умолчанию. Комментируя это и перезагружая сервер, все было хорошо.

Убедитесь, что прокси-модуль загружается. Это можно сделать с помощью строки конфигурации динамической загрузки в файле conf:

LoadModule  proxy_http_module    modules/mod_proxy_http.so

Или скомпилирован в Apache:

./httpd -l | grep proxy
mod_proxy.c
mod_proxy_connect.c
mod_proxy_ftp.c
mod_proxy_http.c
mod_proxy_scgi.c
mod_proxy_ajp.c
mod_proxy_balancer.c

Скорее всего, вы можете получить mod_proxy_http.so с другого сервера.

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