activeMQ 的代理通行證

activeMQ 的代理通行證

我有一個 apache 伺服器,我試圖用它來代理存取我的 activeMQ 管理頁面。我能夠正確加載初始登入頁面,但我似乎無法加載任何子頁面(隊列、連接等)。我在 apache 伺服器上的 proxypass 規則如下:

ProxyPass /foo http://10.5.124.108:8161/admin
ProxyPassReverse /foo http://10.5.124.108:8161/admin

activeMQ 安裝包含 /etc/httpd/conf.d/ 中的 activemq-httpd.conf 檔案。代理連線已啟用:

ProxyRequests On
ProxyVia On

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

ProxyPass /admin http://localhost:8161/admin
ProxyPassReverse /admin http://localhost:8161/admin
ProxyPass /message http://localhost:8161/admin/send
ProxyPassReverse /message http://localhost:8161/admin/send

根據我的閱讀,proxypass 規則應該是遞歸的(/foo 的規則也應該適用於 /foo/bar)。我是否還缺少其他內容,導致我無法存取初始管理登入頁面之外的頁面?

答案1

mod_proxy 不會重寫目標頁面中的鏈接,因此雖然您可以查看初始頁面,但一個常見問題是指向子頁面的鏈接包含的主機名稱或 URL 不指向您擁有的代理前端進入。這應該很容易在 html 原始程式碼中或只需將滑鼠懸停在連結上即可發現。

如果發生這種情況,則可以將 AMQ 設定為使用代理主機的主機名稱而不是自己的主機名稱。

Proxypass URL 是遞歸的,但前提是連結正確。如果您將 /message 重新映射到 /admin/send,並且下面有一個指向 /admin/send/foo 的連結 - 它不會被重定向到 /message/foo。您可能可以添加一些 mod_rewrite foo 來實現這一點,但我不相信它是 mod_proxy 的一部分。

相關內容