ReverseProxy + Umleitung auf Unterverzeichnis?

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

ReverseProxy + Umleitung auf Unterverzeichnis?

Postby kschroeder » 04. March 2008 08:49

Hallo,

ich hab noch eine kleine Frage bezüglich ReverseProxy und automatische Umleitung auf ein Unterverzeichnis.

So soll die extere Adresse www.extern.de aufgerufen werden können und der ReverseProxy leitet die Anfrage automatisch auf www.intern.de/subfolder weiter.

Funktioniert das mit der RedirectMatch Direktive?
RedirectMatch ^/$ /subfolder/ scheint jallerdings nicht zu funktionieren.
Oder muss ich diese nicht schlicht innerhalb von <VirtualHost> angeben?
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Postby Wiedmann » 04. March 2008 11:01

und der ReverseProxy leitet die Anfrage ... Funktioniert das mit der RedirectMatch Direktive?

Ein ReverseProxy wird nicht mit RedirectMatch konfiguriert.

siehe: http://httpd.apache.org/docs/2.2/mod/mo ... assreverse
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kschroeder » 04. March 2008 11:44

Hatte die Idee, dass die Direktive erst mal www.extern.de nach www.extern.de/subfolder umwandelt und dann erst die ReverseProxy-Direktiven ziehen.

Leider zeigen die Beispiele in den Anleitungen nur den Fall, dass die Unterverzeichnisse aus der externen Adresse entfernt werden.

Folgendes funkioniert aber leider auch nicht.
Code: Select all
   ProxyRemote * http://intern.de/subfolder/
   ProxyPass / http://intern.de:8000/subfolder/
   ProxyPassReverse / http://intern.de:8000/subfolder/

   SetOutputFilter proxy-html
   ProxyHTMLURLMap http://intern.de:8000/ http://testserver2/


Als Fehlermeldung erhalte ich, dass
http://intern.de:8000/subfolder/subfolder/default.htm nicht gefunden werden kann
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Postby Wiedmann » 04. March 2008 11:49

a) das hat mich bei deinem letzten "Monolog" ;-) schon gewundert:
Zuwas benutzt du hier überall die "ProxyRemote" Directive?

b) was passiert denn, wenn du das mod_proxy_html mal weglässt? Allerdings würde ich bei diesem Mod auch vermuten, dass man den interne URL dann mit Pfad angibt?

c) Ich würde auch auf jedenfall die Directiven für Cookies mit angeben.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kschroeder » 04. March 2008 12:19

zu a) Um die ProxyRemote Direktive hab ich mich gar nicht so sehr gekümmert. Die ist beim Kopieren der Beispiele aus dem Internet hinzugekommen.

zu b) wenn ich mod_proxy_html weglasse, werden Stylesheets und Images nicht sauber übersetzt und daher nicht dargestellt.

zu c) die Cookie-Direktive hab ich auch angegeben. Nur im Code-Schnipsel nicht erwähnt.

(Eine Konversation macht schon entscheidend mehr Spaß als Monologe :wink: )
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Postby Wiedmann » 04. March 2008 13:29

zu a) Um die ProxyRemote Direktive hab ich mich gar nicht so sehr gekümmert. Die ist beim Kopieren der Beispiele aus dem Internet hinzugekommen.

Die wirst du IMHO jedenfalls so oder so nicht brauchen. Ist nur nötig, wenn man die Zielwebsite (intern.de) selbst nur über einen Proxy erreichen kann.

zu b) wenn ich mod_proxy_html weglasse, werden Stylesheets und Images nicht sauber übersetzt und daher nicht dargestellt.

Das kann dann passieren natürlich passieren, wenn die Zielwebsite absolute URIs im HTML benutzt. Aber wie sieht es abgesehen von Bildern und CSS aus?

Oder anders:
Als Fehlermeldung erhalte ich, dass
http://intern.de:8000/subfolder/subfolder/default.htm nicht gefunden werden kann

Wobei tritt dieser Fehler denn auf?

Oder muss ich diese nicht schlicht innerhalb von <VirtualHost> angeben?

Wenn dein Server auf alle Anfragen reagieren soll, und diese auch alle umleiten soll, brauchst du keine VHosts.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kschroeder » 04. March 2008 13:32

Wenn ich einfach nur der ProxyPass Direktive den Unterordner mitgebe,
dann funktioniert der Aufruf, allerdings funktioniert es nicht mehr, wenn der Anwender selber schon das Unterverzeichnis angibt oder automatisch auf weitere Seiten verlinkt werden, wo zwangsläufig der Unterordner angegeben ist.
Ich muss also eine Lösung finden, die ausschließlich nur dann auf den Unterordner umleitet, wenn nirgends explizit der Ordner angegeben ist.

Könnte ich reguläre Ausrücke verarbeiten, könnte ich mir eine Lösung vorstellen, aber so??
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Postby Wiedmann » 04. March 2008 14:11

allerdings funktioniert es nicht mehr, wenn der Anwender selber schon das Unterverzeichnis angibt

Wenn du jetzt am Server einen Browser startest und diese URI aufrufst:
"http://intern.de:8000/subfolder/"

was passiert dann genau? (inkl. redirects die der server intern.de evtl. zurückliefert).
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kschroeder » 04. March 2008 16:29

Ich hoffe, ich habe Dich korrekt verstanden :oops: :

Auf dem internen Server rufe ich die Seite immer so auf.
Diese erwartet dann zunächst eine Authentifizierung (ich denke mal über .htaccess), danach erscheint erst ein Splash-Logo und dann die Weiterleitung in die Hauptmaske über eine cryptische URL.

Wenn ich über die Adresse auf dem ReverseProxy gehe, erhalte ich die vom internen Server erzeugte Fehlermeldung (s.o.)
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Postby Wiedmann » 04. March 2008 16:54

ich denke mal über .htaccess

Hm, wieso ich denke... entweder du erhälst vom Server einen 401-Header und dein Browser fragt dich deswegen nach User und Pasword (in einem Dialogfenster), oder ein Script auf dem Sever fragt dich über ein HTML-Formular nach diesen Daten.

danach erscheint erst ein Splash-Logo und dann die Weiterleitung in die Hauptmaske über eine cryptische URL.

Wenn ich über die Adresse auf dem ReverseProxy gehe, erhalte ich die vom internen Server erzeugte Fehlermeldung (s.o.)

Und wann genau erhälst du die Fehlermeldung wenn du über den ReverseProxy gehst, vor oder nach der Anmeldung?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kschroeder » 04. March 2008 17:10

Der Browser fragt mich über ein Dialogfenster. Ist also keine selbstgestaltete Abfrage.
Die Fehlermeldung erhalte ich bereits vor einer Passwortabfrage.

Wenn ich auf dem internen Server die URL intern.de:8000/subfolder/subfolder eingebe, erhalte ich eine vom Server erzeugte Meldung:
Das Objekt subfolder in der URL /subfolders/subfolders/ ist nicht gültig

Wenn ich auf dem ReverseProxy die URL extern.de eingebe, zeigt mir die Fehlermeldung:
Das Objekt subfolder/default.htm in der URL /subfolder/subfolder/default.htm?sap-sessioncmd=open ist nicht gültig.

Wenn ich die ReverseProxy-Direktiven unverändert belasse (also ohne die Angabe des Unterverzeichnisses), dann muss ich (der Anwender) einmalig hinter der URL das Verzeichnis mitangeben (also extern.de/subolder).
Danach läuft alles sauber.
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Postby Wiedmann » 04. March 2008 17:18

Die Fehlermeldung erhalte ich bereits vor einer Passwortabfrage.

Also:
"http://intern.de:8000/subfolder/" auf dem Sever funktioniert, aber
"http://revproxyserver.de/" nicht.

Da beim Aufruf von "http://revproxyserver.de/" die Fehlermeldung "http://intern.de:8000/subfolder/subfolder/default.htm nicht gefunden" kommt, schein ja bereits diese Seite ("http://revproxyserver.de/" oder "http://intern.de:8000/subfolder/") eine Redirect zu verursachen. Wie genau funktioniert dieser?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kschroeder » 05. March 2008 06:57

tja, da sich die Seite leider eher als Blackbox präsentiert, kann ich nicht sagen, wie dieser Redirect erzeugt wird.
Hätte ich Zugriff auf das System, würde ich warscheinlich einfach eine Startsteite mit einem eigenem Redirect auf das Unterverzeichnis bauen.

Ich bin leider auch nicht so firm in http-headers auslesen und erkennen.
Da gibts aber bestimmt ne Reihe von Firefox-Addons.

Ich denke, dass der Fehler darin liegt, dass der ReverseProxy jetzt jedesmal, wenn er die Domain extern.de findet, daraus intern.de/subfolder macht. Danach findet ein Redirect statt, der auch auf intern.de/subfolder verweist. Der ReverseProxy macht erstmal aus dem intern. wieder ein extern.de und extern.de wird wieder in intern.de/subfolder umgesetzt. Daher entsteht das intern.de/subfolder/subfolder/.

Er muss also entweder die Translation ausschließlich dann ausführen, wenn die Adresse nur extern.de lautet und nicht, wenn schon Unterverzeichnisse genannt werden.
Oder er muss dafür sorgen, dass bei der Rückübersetzung auch intern.de/subfolder in extern.de geändert wird.
Das wird aber wiederrum schwierig, da die URL nach Anmeldung nicht irgendwas mit intern.de/subfolder/irgendwas lautet sondern leider sowas wie intern.de/subfolder(bD1lbiZjPTAwMSZkPW1pbg==)/default.htm?sap-sessioncmd=open
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Postby Wiedmann » 05. March 2008 10:47

tja, da sich die Seite leider eher als Blackbox präsentiert, kann ich nicht sagen, wie dieser Redirect erzeugt wird.

Da die Daten ja in deinem Browser landen, kann man von einer Blackbox ja nicht wirklich reden ;-)

Ich bin leider auch nicht so firm in http-headers auslesen und erkennen. Da gibts aber bestimmt ne Reihe von Firefox-Addons.

"Live HTTP Headers" ist da wohl das bekannteste. (Notfalls würde aber auch schon Telnet langen.) Der Redirect könnte aber auch im HTML-Code (meta refresh/Javascript) und nicht in einem HTP-Header stanttfinden.

Das wird aber wiederrum schwierig, da die URL nach Anmeldung nicht irgendwas mit intern.de/subfolder/irgendwas lautet sondern leider sowas wie intern.de/subfolder(bD1lbiZjPTAwMSZkPW1pbg==)/default.htm?sap-sessioncmd=open

Ist da kein Slash zwischen "intern.de/subfolder" und "(bD1lbiZjPTAwMSZkPW1pbg==)/default.htm?sap-sessioncmd=open"?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kschroeder » 05. March 2008 12:23

Blackbox meinte ich mehr im Sinne von "da kann ich keinen Sourcecode sehen und da kann ich nichts ändern." :wink:
Ich kann also nicht sehen, was da eventuell serverseitig abläuft, bevor Code an den Browser geschickt wird.

Irritierender Weise ist da leider ist da kein Slash zwischen dem subfolder und dem Kram in Klammern.

Sorry, ich hab keine Idee inwiefern der HTTP-Header weiterhelfen könnte :cry:
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Next

Return to Apache

Who is online

Users browsing this forum: No registered users and 4 guests