У меня есть выполнение 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, и т.д. загрузиться правильно?
У вас есть несколько вариантов, ни один из которых не идеален:
Может быть, вам повезло, и в корне каждого приложения используется только пара не перекрывающихся папок, и вы можете просто добавить несколько директив 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>
Я не тестировал, хорошо ли он стекируется с 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>