
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.
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.