Назад | Перейти на главную страницу

Как я могу настроить mod_proxy на ProxyPass все, кроме X VirtualHosts?

Обновить Благодаря ответам Билла и crb, я считаю, что у меня это работает.

xxx@host:/etc/apache2/sites-available$ apache2ctl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server default (/etc/apache2/sites-enabled/000-default:4)
         port 80 namevhost default (/etc/apache2/sites-enabled/000-default:4)
         port 80 namevhost www.123acme.com (/etc/apache2/sites-enabled/www.123acme.com:4)
Syntax OK

Сейчас www.123acme.com разрешит правильный VirtualHost, обслуживаемый Apache, из / var / www, а все остальное проксируется на Jetty.


У меня есть экземпляр Apache2 на порту 80 и сервер приложений Jetty, работающий на 8080. Я хотел бы, чтобы экземпляр Apache обслуживал VirtualHost, скажем, www.acme.com, и отправлял весь остальной трафик экземпляру Jetty.

Пока у меня есть сайты / пристань, которые содержат

ProxyRequests Off

<Proxy *>
  Order deny,allow
  Allow from all
</Proxy>

ProxyPass / http://localhost:8080/
ProxyPreserveHost On
ProxyStatus On

с целью сначала передать все через прокси на Jetty. Кажется, пока это работает нормально.

Итак, с этого момента, как я могу настроить различные VirtualHosts который не получить прокси?

Повторюсь:

-Тип www.acme.com следует перейти к традиционному VirtualHost сидя в / var / www и обслуживается Apache2 из конфигурации в сайты с поддержкой / acme.com

-Тип что-нибудь else должен быть перенаправлен на экземпляр Jetty, работающий на 8080

Если у вас нет соответствия определению VirtualHost (на основе ServerName / ServerAlias), Apache будет обслуживать ваш запрос с первым VirtualHost. (Видеть документы).

Настройте виртуальный хост с таким именем, как 000-first, и поместите в него конфигурацию ProxyPass. Они включены в порядок сортировки каталога.

Первый виртуальный хост в файле (или тот, который включен) является значением по умолчанию, и это то место, куда он попадет. Таким образом, просто сделайте первый виртуальный хост прокси, а затем второй www.acme.com.

Я бы сделал это, создав два VirtualNost.

Первый VirtualHost, используемый по умолчанию, будет содержать настройки ProxyPass. Судя по именам файлов, похоже, что вы используете Debian или Ubuntu? В этом случае мы говорим о / etc / apache2 / sites-enabled / 000-default (также известный как / etc / apache2 / sites-available / default).

Затем второй VirtualHost определенно укажет www.acme.com в качестве своего ServerName и будет обслуживать содержимое / var / www.