"nicht-transparenter" Reverse Proxy

Alles, was den Apache betrifft, kann hier besprochen werden.

"nicht-transparenter" Reverse Proxy

Postby fisherman_b » 24. September 2009 15:51

Hallo,

zum Thema Apache + Reverse Proxy findet man viele Hinweise, und ich habe auch die Konfiguration mit ProxyPass und ProxyPassReverse erfolgreich getestet.

Bsp:

ProxyPass /proxytest http://fremdeseite.com
ProxyPassReverse /proxytest http://fremdeseite.com


Was ich brauche, unterscheidet sich aber in einem bestimmten Punkt vom Ergebnis dieser Konfiguration.

Im o.g. Beispiel wird nach Eingabe der URL http://meineseite.com/test nach http://fremdeseite umgeleitet, und zwar "transparent", also für den aufrufenden Browser verhält sich die Seite, auf die umgeleitet wurde, so als hätte er sie direkt aufgerufen. Auch in der Adressleiste des Browsers steht ja dann "http://fremdeseite.com".

Ich bräuchte aber eine Konfiguration, bei der der Browser den Inhalt von http://fremdeseite.com anzeigt, aber die URL der Seite so im Browser aussieht, wie eingegeben: "http://meineseite.com/proxytest"

Geht das, und wenn ja, wie sähe die Konfiguration aus?

Bernhard
fisherman_b
 

Re: "nicht-transparenter" Reverse Proxy

Postby Nobbie » 24. September 2009 16:37

fisherman_b wrote:Im o.g. Beispiel wird nach Eingabe der URL http://meineseite.com/test nach http://fremdeseite umgeleitet, und zwar "transparent", also für den aufrufenden Browser verhält sich die Seite, auf die umgeleitet wurde, so als hätte er sie direkt aufgerufen. Auch in der Adressleiste des Browsers steht ja dann "http://fremdeseite.com".


Nein.

fisherman_b wrote:Ich bräuchte aber eine Konfiguration, bei der der Browser den Inhalt von http://fremdeseite.com anzeigt, aber die URL der Seite so im Browser aussieht, wie eingegeben: "http://meineseite.com/proxytest"

Geht das, und wenn ja, wie sähe die Konfiguration aus?


s.o.
Nobbie
 
Posts: 8772
Joined: 09. March 2008 13:04

Re: "nicht-transparenter" Reverse Proxy

Postby fisherman_b » 24. September 2009 17:47

Ich würde mich natürlich auch sehr über konstruktive Beiträge freuen.


Hier ein reales Beispiel zum ausprobieren:

Die Apache Konfiguration:

<VirtualHost *:80>
DocumentRoot "D:/Apache htdocs/bf1"
ServerName bf1.dnsalias.com

<Directory "D:/Apache htdocs/bf1">
Options +FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

ProxyRequests Off
ProxyPass /proxytest http://google.de
ProxyPassReverse /proxytest http://google.de
</VirtualHost>


Eingegebene URL Im Browser: http://bf1.dnsalias.com/proxytest

Angezeigte Seite: http://www.google.de/

Angezeigte URL in der Browser Adressleiste: http://www.google.de/
fisherman_b
 

Re: "nicht-transparenter" Reverse Proxy

Postby Nobbie » 24. September 2009 19:18

>ProxyRequests Off

Aha. Eine neue Direktive!? Die ist natürlich saublöd, wenn man genau das Gegenteil will.

Wer "konstruktive" Antworten erwartet (die ich gegeben habe), aber nicht in der Lage ist, die "wahre" (und sinnfreie) Konfiguration zu posten - was erwartet man dann??

Also: was ist Deine persönliche Idee, warum Du die o.g. Direktive verwendest? Welche Überlegungen haben Dich geleitet, als Du diese Zeile mit aufgenommen hast?
Nobbie
 
Posts: 8772
Joined: 09. March 2008 13:04

Re: "nicht-transparenter" Reverse Proxy

Postby fisherman_b » 24. September 2009 19:35

Nobbie wrote:ProxyRequests Off
Aha. Eine neue Direktive!?


Nein, so neu ist die nicht.

Nobbie wrote:ProxyRequests Off
Die ist natürlich saublöd, wenn man genau das Gegenteil will.

Keine Ahnung, was Du hiermit sagen willst. Saublöd, wenn man nicht in der Lage ist, eine einfache Information als solche zu formulieren.

Nobbie wrote:Wer "konstruktive" Antworten erwartet (die ich gegeben habe), aber nicht in der Lage ist, die "wahre" (und sinnfreie) Konfiguration zu posten - was erwartet man dann??

Also: was ist Deine persönliche Idee, warum Du die o.g. Direktive verwendest? Welche Überlegungen haben Dich geleitet, als Du diese Zeile mit aufgenommen hast?

Warum erläuterst Du nicht, was an ProxyRequests Off sinnfrei ist, wenn es um die Konfiguration eines Reverse Proxy geht?
Was ist an meiner Interpretation der Apache Doku (http://httpd.apache.org/docs/2.0/mod/mo ... xyrequests) falsch in meiner Konfiguration?
Warum poste ich eine Frage in einem Forum? Weil ich die Antwort nicht bereits kenne?

Sorry, aber solange Du nur den Anschein erweckst, Ahnung zu haben, anstatt zu helfen, langweilst Du mich nur mit Deinen seltsamen Postings. Ich habe mich wohl im falschen Forum registriert - ich habe weder Zeit für noch Lust auf Trolle.

Dir noch viel Vergnügen hier, und vor allem gute Besserung.
fisherman_b
 

Re: "nicht-transparenter" Reverse Proxy

Postby Nobbie » 25. September 2009 08:20

fisherman_b wrote:Nein, so neu ist die nicht.


Doch, sehr sogar - und zwar für "uns", die Leser Deines "Beispiels": da steht sie nämlich nicht drin. Erst im zweiten Beitrag.

fisherman_b wrote:Keine Ahnung, was Du hiermit sagen willst. Saublöd, wenn man nicht in der Lage ist, eine einfache Information als solche zu formulieren.


Ich will Dir sagen, dass Du lernen sollst, Dokumentation zu lesen, statt sinnfrei einfach irgendwelche Direktiven irgendwo hinzuschreiben.

fisherman_b wrote:Sorry, aber solange Du nur den Anschein erweckst, Ahnung zu haben, anstatt zu helfen, langweilst Du mich nur mit Deinen seltsamen Postings. Ich habe mich wohl im falschen Forum registriert - ich habe weder Zeit für noch Lust auf Trolle.


Seltsam sind Deine Postings - erst lieferst Du ein unvollständiges Beispiel, was es so, wie Du es uns gezeigt hast, genau so täte, wie Du es gerne hättest, und als ich Dir das so klar wie möglich mitteile, fängst Du an an herumzutrollen (ja, Du!).

Ich bin es nicht, der hier Fragen stellt über Dinge, die man ganz einfach Online nachlesen kann, ich bin es auch nicht, der ein unvollständiges Beispiel zeigt (welches an sich eigentlich eine vollständige Funktion hätte - nämlich die von Dir gewünschte) und ich bin es auch nicht, der die Antwort ums Verrecken nicht verstehen will.
Nobbie
 
Posts: 8772
Joined: 09. March 2008 13:04

Re: "nicht-transparenter" Reverse Proxy

Postby Nobbie » 25. September 2009 08:47

Hier ist mal ein sehr ausführliches und gut dokumentiertes Beispiel, wie ein vollständiger ReverseProxy aussehen kann, der auch Problemfälle wie absolut verlinkte Links (beispielsweise /test.html) richtig auflöst:

http://www.apachetutor.org/admin/reverseproxies

P.S.: wenn im Zielserver in einem PHP Script via header()-Funktion eine "Weiterleitung" eingebaut ist (was leider viele PHP Scriptautoren so machen - obwohl es nahezu sinnfrei ist), dann hebelt das den (wie Du es nennst "nicht-transparenten") ReverseProxy aus, denn diese Weiterleitung wird via HTTP Header gesteuert und im Endeffekt vom Browser ausgeführt (der fordert das gewünschte Dokument dann dort an). In dem Fall ist also der erste Server überhaupt nicht mehr aktiv. Vielleicht passiert ja bei Deinem (für uns total unvollständiges) Beispiel, weswegen sich der ReverseProxy nicht so zu verhalten scheint, wie er es tun sollte. Sollte das wirklich die Problemursache sein, ist sie mit Apachemitteln nicht behebbar. Dazu müßte das Script angepasst werden (was wahrscheinlich ein tiefgreifender Eingriff wäre).

Beispiel:
Code: Select all
header("Location: http://www.fremderserver.de/datei.php");
Nobbie
 
Posts: 8772
Joined: 09. March 2008 13:04

Re: "nicht-transparenter" Reverse Proxy

Postby Trevor » 25. September 2009 09:21

hellas Kollege

deine conf ist (fast) in Ordnung so da es aber in einem Name Based Virtual Host ist musst du noch "ProxyPreserveHost On" einsetzen dann funktionierts so wie du willst

Servus

T.
Trevor
 
Posts: 1
Joined: 25. September 2009 09:12

Re: "nicht-transparenter" Reverse Proxy

Postby Nobbie » 25. September 2009 10:32

Trevor wrote:deine conf ist (fast) in Ordnung so da es aber in einem Name Based Virtual Host ist musst du noch "ProxyPreserveHost On" einsetzen dann funktionierts so wie du willst


Das wäre grober Zufall, damit wird ledliglich der host-Name des Originalrequest durchgereicht an den Proxy. Normalerweise braucht man das nicht (kann sogar zu unerwünschtem Verhalten führen) und erklärt sowieso nicht, wieso angeblich der Request als Redirect ausgeführt wird.

Aus der Dokumentation:

When enabled, this option will pass the Host: line from the incoming request to the proxied host, instead of the hostname specified in the proxypass line.

This option should normally be turned Off. It is mostly useful in special configurations like proxied mass name-based virtual hosting, where the original Host header needs to be evaluated by the backend server.
Nobbie
 
Posts: 8772
Joined: 09. March 2008 13:04


Return to Apache

Who is online

Users browsing this forum: No registered users and 5 guests