
Ich habe einen Apache-Server, den ich für den Proxy-Zugriff auf meine ActiveMQ-Admin-Seite verwenden möchte. Ich kann die anfängliche Zielseite ordnungsgemäß laden, aber anscheinend kann ich keine der Unterseiten (Warteschlangen, Verbindungen usw.) laden. Meine Proxypass-Regeln auf dem Apache-Server lauten wie folgt:
ProxyPass /foo http://10.5.124.108:8161/admin
ProxyPassReverse /foo http://10.5.124.108:8161/admin
Die ActiveMQ-Installation enthält eine Datei activemq-httpd.conf in /etc/httpd/conf.d/. Dort sind Proxy-Verbindungen aktiviert:
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
Soweit ich gelesen habe, sollten die Proxypass-Regeln rekursiv sein (die Regel für /foo sollte auch für /foo/bar funktionieren). Gibt es noch etwas, das ich hier übersehe und das mich daran hindert, auf Seiten jenseits der anfänglichen Admin-Landingpage zuzugreifen?
Antwort1
mod_proxy schreibt Links auf der Zielseite nicht neu. Sie können also zwar die ursprüngliche Seite anzeigen, aber ein häufiges Problem ist, dass Links zu Unterseiten einen Hostnamen oder eine URL enthalten, die nicht auf das Proxy-Frontend zurückverweisen, auf das Sie Zugriff haben. Dies sollte in der HTML-Quelle oder durch einfaches Bewegen des Mauszeigers über die Links leicht zu erkennen sein.
Wenn dies der Fall ist, kann AMQ möglicherweise so konfiguriert werden, dass der Hostname des Proxy-Hosts und nicht der eigene verwendet wird.
Proxypass-URLs sind rekursiv, aber auch hier gilt dies nur, wenn der Link korrekt ist. Wenn Sie /message auf /admin/send neu zuordnen und sich darunter ein Link befindet, der auf /admin/send/foo verweist, wird dieser nicht auf /message/foo umgeleitet. Sie könnten wahrscheinlich etwas mod_rewrite foo hinzufügen, um dies zu erreichen, aber ich glaube nicht, dass dies Teil von mod_proxy ist.