
私は、ActiveMQ 管理ページへのプロキシ アクセスに使用しようとしている Apache サーバーを持っています。最初のランディング ページは適切に読み込むことができますが、サブ ページ (キュー、接続など) はどれも読み込めないようです。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 の一部ではないと思います。