Apach2 ProxyPass auf anderen Port

Apache, Lighttpd, nginx, Cherokee
splitti
Posts: 21
Joined: 2007-02-08 22:20

Apach2 ProxyPass auf anderen Port

Post by splitti » 2008-01-24 17:43

Hallo!

Ich versuche gerade folgendes im Apache2 zu konfigurieren:
Eine Anfrage auf http://webserver/test soll von webserver2:9000 beantwortet werden. Da webserver2 keine öffentliche IP hat, geht also kein redirect, und ich versuche dsa ganze per ProxyPass.
dazu hab ich unter <VirtualHost *> die beiden Zeilen
ProxyPass /test http://webserver2:9000
ProxyPassReverse /test http://webserver2:9000
eingefügt.

Grundsätzlich funktioniert das auch. Wenn ich jetzt webserver/test aufrufe, bekomme ich etwas von der Seite zu sehen, die von webserver2 kommt. Allerdings fehlen z. B. die Bilder in der angezeigten Seite. Wenn ich mir dann den Quellcode der Seite ansehe, sucht er die Bilder in /images/.
Was aber in meinem Fall dann /test/images/ wäre und nicht /images/
Da ich auf die Seiten auf webserver2 keinen Einfluss habe, kann ich das dort leider nicht ändern.

MfG
splitti

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: Apach2 ProxyPass auf anderen Port

Post by daemotron » 2008-01-24 21:01

Du könntest vor dem ProxyPass noch ein URL-Rewriting einbauen, dass URLs, die /images/ enthalten so umschreibt, dass der Aufruf funktioniert.

stanglwirt
Posts: 48
Joined: 2006-01-10 14:44

Re: Apach2 ProxyPass auf anderen Port

Post by stanglwirt » 2008-01-25 09:48

oder für /images des gleiche proxypass-gesülze wie für /test

splitti
Posts: 21
Joined: 2007-02-08 22:20

Re: Apach2 ProxyPass auf anderen Port

Post by splitti » 2008-01-25 10:28

stanglwirt wrote:oder für /images des gleiche proxypass-gesülze wie für /test


das hat schon mal soweit funktioniert
ist zwar etwas umständlich, das jetzt für jedes Verzeichnis zu machen, was auf webserver2 auftaucht, aber es geht erstmal

Kann man das ganze noch irgendwie abhängig davon machen, welche URL man aufruft? Weil, wenn ich jetzt noch einen dritten Server (webserver3) benutzen würde, und dieser auch ein /images/ haben will, wie soll ich dann die Unterscheidung machen, ob /images auf webserver2 oder webserver3 gehen soll?

MfG
splitti

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Apach2 ProxyPass auf anderen Port

Post by Roger Wilco » 2008-01-25 11:05

splitti wrote:Kann man das ganze noch irgendwie abhängig davon machen, welche URL man aufruft?

Nein.

splitti wrote:Weil, wenn ich jetzt noch einen dritten Server (webserver3) benutzen würde, und dieser auch ein /images/ haben will, wie soll ich dann die Unterscheidung machen, ob /images auf webserver2 oder webserver3 gehen soll?

Das geht auf diese Weise nicht. Du müsstest die HTML-Seiten bzw. die enthaltenen Hyperlinks dann on-the-fly umschreiben.

Am einfachsten wäre es vermutlich, wenn du die einzelnen Applikationen über Subdomains anstatt Verzeichnissen zugänglich machst, also app1.example.com für die erste Applikation, app2.example.com für die zweite. Dann sparst du dir das Umschreiben der URLs.