Wie kann ich den Stammspeicherort von Ressourcen neu schreiben, auf die in Reverse-Proxy-Seiten in Apache 2 verwiesen wird?

Wie kann ich den Stammspeicherort von Ressourcen neu schreiben, auf die in Reverse-Proxy-Seiten in Apache 2 verwiesen wird?

Wir haben einen Anwendungsserver unterhttp://foo.bar.

Der Zugriff muss über http://wibble/foo unter Verwendung eines Reverse-Proxys erfolgen.

Dies habe ich geschafft, allerdings gibt es Sachen in http:// foo.bar, die von / verweisen.

Z.B:

/bilder/blah.jpg

Es wird also versucht, http:// wibble/images/blah.jpg statt

http://wibble/foo/images/blah.jpg

Irgendeine Idee, wie ich es dazu bringen kann, das Präfix /foo für alle von / aus referenzierten Elemente einzufügen?

Antwort1

mod_proxyniemalsändert das HTML.

Nur die oben ausdrücklich erwähnten HTTP-Antwortheader werden umgeschrieben. Apache wird weder andere Antwortheader noch URL-Referenzen in HTML-Seiten umschreiben. Das bedeutet, dass der Proxy-Inhalt, wenn er absolute URL-Referenzen enthält, den Proxy umgeht. Ein Drittanbietermodul, das in das HTML schaut und URL-Referenzen umschreibt, ist mod_proxy_html von Nick Kew.

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

Antwort2

Wenn Sie nginx als Front-End-Server verwenden, können Sie das HttpSubModule verwenden, um die Ersetzung durchzuführen. Im Wesentlichen sollte nginx die Anfrage als Proxy weiterleiten und die Ersetzung am zurückgegebenen Text durchführen. Ich glaube jedoch, dass Sie dies nicht verwenden können, wenn Sie Komprimierung auf dem Backend haben (solange Sie also Komprimierung auf dem Front-End-Server haben, sollte es kein Problem sein):

Im Wesentlichen: Nginx -> Proxy zu Apache -> Rückkehr zu Nginx -> Ersetzung durchführen -> Komprimieren und bereitstellen

Ich gehe davon aus, dass ein ähnliches Modul für Apache und andere Server existiert.

verwandte Informationen