Frage zur Reverse Proxy Konfiguration

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

Frage zur Reverse Proxy Konfiguration

Postby hambam » 06. March 2017 10:29

Hallo,

ich habe einen internen Webserver, der leider alles absolut referenziert:

Code: Select all
<link rel="stylesheet" type="text/css" href="http://intern/styles/default.css">
<script src="http://intern/scripts/default.js">
<img src="http://intern/images/bild1.jpg">


Wie muss ich jetzt einen Reverse Proxy konfigurieren, damit dieser Server korrekt aufgerufen werden kann?
hambam
 
Posts: 3
Joined: 06. March 2017 09:56
XAMPP version: 3.2.1
Operating System: Windows / Linux

Re: Frage zur Reverse Proxy Konfiguration

Postby Nobbie » 06. March 2017 12:19

Ich verstehe die Frage nicht. Das Codebeispiel ist doch aus einem HTML Dokument und ein Browser leitet aus den Angaben in in den URLs den HTTP Request her, den er dann an den zuständigen Webserver schickt, der seinerseits die angefragten Dokumente ausliefert, entweder unmittelbar oder via Reverse Proxy. Wo referenziert da ein Webserver(??) alles absolut?

Wo entsteht da ein Problem? Und welche Konfiguration hast Du probiert und wo hakt es? Ich kann überhaupt kein Problem erkennen.

P.S.: Ich habe jetzt immerhin das Problem verstanden, nicht der Webserver sondern die HTML Dokumente auf dem Server im Hintergrund referenzieren hardcoded diesen von außen nicht sichtbaren Server. Das ist kurz abgehandelt in dem sehr guten Tutorial http://www.apachetutor.org/admin/reverseproxies und da unter dem Punkt "Fixing HTML Links", Dein Problem ist der Fall 3 der drei Beispiele. Da ist auch schon das Coding ausgeführt, was man angeben muss (mit Erklärung), insgesamt braucht man dazu das Modul mod_proxy_html, welches die HTML Dokumente parst und ggf. Links usw. ersetzt, eben so, wie es durch die entsprechenden Konfigurationsparameter angegeben wird. "How it works" enthält ein komplettes Beispiel.
Nobbie
 
Posts: 9569
Joined: 09. March 2008 13:04

Re: Frage zur Reverse Proxy Konfiguration

Postby hambam » 06. March 2017 14:18

Offenbar werde ich nicht schlau aus dem Tutorial.
Ich habe den internen Server soweit umstellen können, dass jetzt die Links in HTML-Seiten nur noch so aussehen:
<img src="/images/bild1.jpg">

Aber was muss der Reverse Proxy überhaupt umbauen, damit das Bild angezeigt wird?
hambam
 
Posts: 3
Joined: 06. March 2017 09:56
XAMPP version: 3.2.1
Operating System: Windows / Linux

Re: Frage zur Reverse Proxy Konfiguration

Postby Nobbie » 06. March 2017 18:16

hambam wrote:Offenbar werde ich nicht schlau aus dem Tutorial.


Was soll das heißen? Wo hakt es denn, wie sieht Deine Konfiguration aus?

hambam wrote:Ich habe den internen Server soweit umstellen können,


Was heißt das? Hast Du irgendeine Reverse Proxy Konfiguration, oder hast Du auf dem remote Server irgendeine Software verändert, dass die Links nicht mehr den Domainnamen beeinhalten? So oder so - wie sieht Deine aktuelle Reverse Proxy Konfiguration aus?
Nobbie
 
Posts: 9569
Joined: 09. March 2008 13:04

Re: Frage zur Reverse Proxy Konfiguration

Postby hambam » 07. March 2017 08:47

Ich habe es jetzt größtenteils zum Laufen gebracht.
Die Konfig sieht jetzt wie folgt aus:
Code: Select all
        ProxyPreserveHost On
        ProxyPass / http://10.9.11.23/
        ProxyPassReverse / http://10.9.11.23/

Ich vermute, dass ich mir die Probleme eingehandelt hatte, da ich gleichzeitig versucht hatte eine weitere Vorgabe zu lösen:
Es soll nur dann der interne Server angesprochen werden, wenn ein bestimmtes Unterverzeichnis mitangebgen wird. Ansonsten soll der einfache angegebene DocumentRoot angezeigt werden.
Geht das überhaupt?
Also bei https://extern.de soll DocumentRoot angezeigt und bei https://extern.de/geheim soll der Inhalt vom internen Server geholt werden.

Ich dachte, es müsste dann einfach so gehen (Auf dem internen Server existiert das Verzeichnis intern):
Code: Select all
        ProxyPass /geheim http://10.9.11.23/intern/
        ProxyPassReverse /geheim http://10.9.11.23/intern
hambam
 
Posts: 3
Joined: 06. March 2017 09:56
XAMPP version: 3.2.1
Operating System: Windows / Linux

Re: Frage zur Reverse Proxy Konfiguration

Postby Nobbie » 07. March 2017 13:09

hambam wrote: ProxyPreserveHost On


Wozu hast Du das aktiviert? Die meisten Anwender schreiben das einfach nur so rein ohne zu wissen, was das eigentlich tut und wenn sie es dann wirklich wissen, fliegt es in aller Regel raus, denn meistens wird genau das Gegenteil gebraucht bzw. es fällt nicht auf, weil es nicht ausgewertet wird. Ist Dir klar, was diese Option tut und Du bist sicher, dass Du sie so benötigst? Nach dem bisher beschriebenen Kontext würde ich fast darauf wetten, dass Du das genau NICHT so haben willst. Bin gespannt, was Du dabei gedacht hast.


Ansonsten ist

Code: Select all
ProxyPass / http://10.9.11.23/
ProxyPassReverse / http://10.9.11.23/


nahezu die Minimalkonfiguration, wobei erneut den wenigsten klar ist, dass auch hier die 2. Zeile meistens nicht benötigt wird - weisst Du, was sie bewirkt? Insgesamt würde ich raten, dass bei Dir schon


Code: Select all
ProxyPass / http://10.9.11.23/


ausreicht und alles läuft. Offensichtlich hast Du den großen Vorteil, dass Du auch den verborgenen Server voll im Zugriff hast und sogar die generierten Seiten inkl. Links per Knopfdruck beeinflussen kannst. Das ist natürlich großer Luxus, denn genau diese Links (u.a. das Problem, was Du Eingangs beschrieben hast) machen bei manchen Seiten die Probleme aus. Der Idealfall ist natürlich der, dass es nur sog. relative Links gibt: die enthalten weder einen Servernamen (Domainnamen), noch sind absolut verdrahtet (also starten NICHT mit einem Slash) und sehen dann alle so ungefähr aus: href="folder/file.hml" usw.

hambam wrote:Also bei https://extern.de soll DocumentRoot angezeigt und bei https://extern.de/geheim soll der Inhalt vom internen Server geholt werden.

Ich dachte, es müsste dann einfach so gehen (Auf dem internen Server existiert das Verzeichnis intern):


Ja, geht auch so. Es ist nur eben so, wenn man nicht wie Du die Links einfach mal anpassen kann, dann ist die Wahrscheinlichkeit einfach höher, dass durch das mappen von verschieden benannten Verzeichnissen (es entspricht das externe Verzeichnis "geheim" dem internen Verzeichnis "intern") ungewollt Links entstehen (das hängt eben davon ab, wie die in den Dokumenten ausgeschrieben wurden), die "nicht passen" und wenn man dann nicht die Möglichkeit hat, die Links einfach zu ändern, dann muss man das mit den Hilfsmitteln aus dem Tutorial machen. Insgesamt fällt mir aber noch eine Unsauberkeit auf, die auch zu Problemen führen kann (das muss nicht zwangsweise so sein, kann aber), das hängt u.a. von den Serverkonfigurationen ab, ich nenne das (selbst frei erfunden) "unbalanced Slashes", das heißt, Du benutzt in den ProxyPass Angaben, wo ja ein Start- und ein Zielpfad angegeben werden, einmal einen Slash am Ende und beim anderen Token benutzt Du keinen Slash. Das ist unsauber:

Code: Select all
ProxyPass /geheim http://10.9.11.23/intern/


Siehst Du oben, am Ende von "intern" hast Du einen Slash dahinter gemacht, aber am Ende von "geheim" hast Du das nicht getan. Das kann unter entsprechenden Konfigurationen dazu führen, dass entweder doppelte Slash irgendwo entstehen oder eben gar keiner. Das ist übrigens in der ALIAS Klausel ähnlich. Ich empfehle immer, macht es sauber und im Zweifel würde ich beides Mal einen Slash angeben:

Code: Select all
ProxyPass /geheim/ http://10.9.11.23/intern/


Aber ansonsten müßte das so funktionieren, wobei ich erneut auch hier glaube, dass die ProxyPreserveHost Option falsch angegeben ist (aber glücklicherweise keine Auswirkung hat) und dass auch die ProxyPassReserve Klausel eigentlich nicht benötigt wird. Aber dazu fehlt mir insgesamt das Wissen, was da genau passiert. Aber bei den meisten wird es nicht benötigt.
Nobbie
 
Posts: 9569
Joined: 09. March 2008 13:04


Return to Apache

Who is online

Users browsing this forum: No registered users and 2 guests