我正在尝试在我们的标准 http 代理服务器上为我的公司环境的 ActiveMQ 管理页面设置代理。我有一个规则,允许我访问管理登录页面:ProxyPass /foobar hostname:8161/admin
ProxyPassReverse /foobar hostname:8161/admin
但是,转到“队列”页面会将我带到附加了唯一 session ID (admin/queues.jsp;jsessionid=oq37zgvxz4zkwliwdwddyon3) 的另一个页面,我希望也可以通过相同的 URL 访问该页面。
尝试在这些 proxypass 规则的末尾添加通配符 (*) 会破坏重定向。是否有我需要与此结合使用的重定向规则,以及如何获取该主机的任何字符串以通过此代理规则?
最佳答案
有基于正则表达式的 ProxyPassMatch
,但 ProxyPass
进行前缀匹配(即 /foo
的 ProxyPass 也应该捕获 /foo/bar
),因此您当前的规则应该可以正常工作。
可能是由于某种原因重定向 URL 与反向规则不匹配。我必须承认,当前端和后端上下文路径不同时,我从来没有设法让 Tomcat 的 ProxyPass
正常工作,所以我的建议是将后端应用程序部署在 hostname:8161/foobar
而不是 /admin
如果这是一个选项。
关于regex - 使用正则表达式进行 proxypass,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12810547/