Reverse Proxy mit Apache ProxyPass-Umleitungen statt transparent Durchreise
Bekam ich eine web-Anwendung läuft innerhalb eines Tomcat auf http://<server>:8080/app/portal/
.
Ich will die Welt sehen, diese Anwendung über die URL http://<server>/portal/
.
Dazu habe ich einen Reverse Proxy mit Apache 2.2. Nach der Dokumentation für ProxyPass ich erwarten, dass die reverse-proxy für alle Anfragen transparent. Mein browser sollte nie wissen, über die Tomcat-URL.
Hier ist meine Konfiguration:
Keine virtuellen hosts Hinzugefügt habe ich die folgenden Zeilen in meine httpd.conf
<Location /portal/>
AllowOverride All
RewriteEngine On
ProxyPass http://server:8080/app/portal/
ProxyPassReverse http://server:8080/app/portal/
</Location>
Wenn ich Firefox öffnen http://<server>/portal/
bekomme ich einen 302 Zeitweilig Verschoben, und alle follow-up-Anrufe werden von meinem browser direkt zu http://<server>:8080/app/portal/
. Mein browser auf diese URL.
Dies ist nicht das, was ich erwartet von einem Reverse-Proxy. Habe ich die Konfiguration falsch oder ich missverstehen den Zweck des Reverse-Proxies? Was sollte ich tun, um meine gewünschte Verhalten?
- was ist
RewriteEngine On
für hier? - Gute Frage. Kopiert habe ich, dass über die von einem anderen funktionierenden Konfiguration, wo wir eigentlich schreibt. Ich entfernte es, und es verhält sich genauso.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich versucht, zu kommentieren, die Antwort von davidethell, konnten aber nicht die Zeilen richtig formatiert, also hier ist was ich herausgefunden:
Das problem war, dass der reverse proxy scheint nur zu arbeiten, um die URL, wo der Krieg ist der Einsatz in meiner Kater und NICHT auf die servlet innerhalb des Tomcat. Dies führt zu 2 schreibt einer von Ihnen den reverse-proxy und man nur umschreiben, alles hinter, dass.
Haben Sie vergessen, fügen Sie die folgende option in Ihre reverse-proxy-Konfiguration:
Erreichen Sie das gleiche Verhalten mit Url-Rewriting, aber es ist nicht empfohlen, in der Dokumentation.
Haben Sie versucht, mit dem mod_rewrite option " Proxy anstatt ProxyPass? So etwas wie: