Behalten Sie die ursprüngliche Anfrage-URL bei mod_proxy redirect bei

Mir läuft eine Webapplikation, die auf einem Servlet-Container (port 8080) in einer Umgebung, die zugegriffen werden kann, aus dem internet (extern) und von der Gesellschaft im inneren (intenal), z.B.

http://external.foo.bar/MyApplication
http://internal.foo.bar/MyApplication

Den incomming (externen/internen) Anfragen werden umgeleitet, um den servlet-container mit Hilfe eines apache-http-server mit mod_proxy. Die Konfiguration sieht so aus:

ProxyPass /MyApplication http://localhost:8080/MyApplication retry=1 acquire=3000 timeout=600 Keepalive=On
ProxyPassReverse /MyApplication http://localhost:8080/MyApplication

Bin ich jetzt vor dem problem, dass einige MyApplication Antworten hängen von der ursprünglichen Anfrage-URL ein. Beton: ein WSDL-Dokument wird bereitgestellt mit einem element, das eine schemaLocation="<RequestUrl>?xsd=MyApplication.xsd" element.

Mit meiner aktuellen Konfiguration, es sieht immer aus wie

<xs:import namespace="..." schemaLocation="http://localhost:8080/MyApplication?xsd=MyApplication.xsd"/>

aber es sollte

External Request: <xs:import namespace="..." schemaLocation="http://external.foo.bar/MyApplication?xsd=MyApplication.xsd"/>
Internal Request: <xs:import namespace="..." schemaLocation="http://internal.foo.bar/MyApplication?xsd=MyApplication.xsd"/>

Ich nehme an, dies ist eine häufige Anforderung. Aber da bin ich kein Experte in der Konfiguration des apache-http-server und seine Module würde ich mich freuen, wenn jemand könnte einige geben, die (detaillierte) Hilfe.

Vielen Dank im Voraus!

InformationsquelleAutor der Frage FrVaBe | 2011-05-20

Schreibe einen Kommentar