Прокси на сайты, которые ожидают быть в корневом URL?

У меня есть выполнение ActiveMQ и Accumulo, которое у каждого есть их собственная веб-консоль. Я хотел бы поместить апачский httpd перед ними. Я устанавливаю mod_proxy и добавил следующее к/etc/httpd/conf.d/proxy.conf

ProxyPass /activemq http://1.2.3.4:8161
ProxyPassReverse /activemq http://1.2.3.4:8161

ProxyPass /accumulo http://5.6.7.8:50095
ProxyPassReverse /accumulo http://5.6.7.8:50095

Проблемой являются сайты AMQ и Accumulo, не работают/смотрят, как они должны, потому что их HTML пытается загрузить изображения, CSS, js использование URL такой как <img src="/images/logo.jpg">

Как я могу прикрепить вещи к js/css, и т.д. загрузиться правильно?

0
задан 7 August 2014 в 14:12
1 ответ

У вас есть несколько вариантов, ни один из которых не идеален:

  • Может быть, вам повезло, и в корне каждого приложения используется только пара не перекрывающихся папок, и вы можете просто добавить несколько директив ProxyPass.

  • Перераспределите ActiveMQ и Accumulo так, чтобы они были установлены не в корне, а в подпапке.

  • Используйте поддомены для каждого приложения, такие как activemq.example.com и accumulo.example.com и направляйте туда пользователей вашего сайта.

т.е. что-то вроде:

<VirtualHost *:80>
    ServerName activemq.example.com
    ProxyPass / http://1.2.3.4:8161
    ProxyPassReverse / http://1.2.3.4:8161
</VirtualHost>
  • На самом деле вы можете заставить apache не только прокси-запросы к вашим внутренним приложениям, но и переписать тело ответа до того, как он будет передан посетителям вашего сайта. (Обычно прокси только переписывает HTTP заголовки/ответы). mod_substitute в apache 2.2.

Я не тестировал, хорошо ли он стекируется с mod_proxy и может вызвать значительные накладные расходы, но, возможно, это работает следующим образом:

<Location /activemq/>
  ProxyPass http://1.2.3.4:8161
  ProxyPassReverse http://1.2.3.4:8161
  AddOutputFilterByType SUBSTITUTE text/html
  Substitute "s|/images/|/activemq/images/|i" 
</Location>
1
ответ дан 4 December 2019 в 17:20

Теги

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