我有ActiveMQ和Accumulo运行,每个都有自己的Web控制台。 我想把Apache的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使用诸如<img src="/images/logo.jpg">
我怎样才能解决的事情的JS / CSS等加载正确?
你有多种select,没有一个是理想的:
也许你很幸运,在每个应用程序的根目录中只使用了几个不重叠的文件夹,你可以简单地添加多个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>
我还没有testing,如果它与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>