Folks, Wir versuchen, Apache-Setup Proxy für das folgende Szenario umkehren:ProxyPassMatch mit Proxypassreverse
- Eingehende Anfragen in Form
http://foo.com/APP/v1/main.html
- Für einige Server die URL einen Unterschied Version verweisen wird, sagen wir,
http://foo.com/APP/v2/main.html
- Ein Upstream Load Balancer (HAProxy) sendet die Anfrage an den richtigen Server, der einen Apache2 Reverse Proxy für einen JBoss Server hat.
- Wenn die Anforderung an Apache 2 erscheint es wird Anforderungsweg wie
/APP/v1/main.html
- Wir es wollen, müssen (rückwärts) Proxy, um
http://localhost:8080/AppContext/main.html
, unabhängig Version Fragment in URL (v1, v2, etc.).
Ich habe versucht, dies zu tun, wie so:
ProxyPassMatch ^/.*?/APP.*?/(.*)$ http://localhost:8080/AppContext/$1
ProxyPassReverse /APP http://localhost:8080/AppContext
Meine Fragen sind:
- Ist meine Verwendung von
ProxyPassMatch
richtig? - Mein
ProxyPassReverse
ist "statisch". Wie mache ich es auf die potenziell variablen Sachen nach/APP
aufmerksam?
Danke für irgendwelche Einblicke.
-Raj
Danke Jon für die schnelle Antwort. Wir versuchen, unsere Apache-Konfiguration frei von versionsspezifischen Einträgen zu halten, um eine homogene Vorlage zu erhalten, die frei im Cluster eingesetzt werden kann. Es sieht so aus, als ob die ProxyPassReverse-Sache nicht zuverlässig durchgeführt werden kann. Würden Sie vorschlagen, dies durch eine Art Rewrite-Modul zu erreichen? – Raj
@Raj Rewrite wird nicht helfen, denn das ist in die andere Richtung. Der App-Server versucht, eine Anfrage umzuleiten, er weiß nichts über die tatsächliche URL, die für den Zugriff verwendet wird, also sagt er einfach: "Gehe zu http: // localhost: 8080/AppContext/something", dem Browser gibt einen 404 zurück, da auf dem Computer, auf dem der Browser läuft, kein Anwendungsserver auf dem Port 8080 des lokalen Hosts ausgeführt wird –