Apache 2.4 als reverseProxy - mein.webserver.de - interne Weiterleitung funktioniert nicht
Hallo liebe Apache Pro's,
ich habe zwar eine gewisse Erfahrung im Umgang mit dem Apache (auf Linux) würde mich aber nicht als einen Pro bezeichnen und habe aktuell ein Problem, bei dem ich nicht weiterkomme.
Ich habe einen Apache Webserver (mein.Webserver.de) der als Reverse Proxy fungiert. Dieser ist über Port 443 (HTTPS) erreichbar.
Auf einem weiteren Server, der nicht aus dem Web erreichbar ist habe ich einen embedded Tomcat der auf dem Port 8080 verschiedene Contexte bereit stellt.
Darüber hinaus startet dieser Webserver (interner.tomcat.Server) auf dem Port 20443 selbst einen Dienst.
mit folgender verkürzter Konfiguration funktioniert die Bereitstellung der Contexte (8080)
Bein Aufruf von https://mein.Webserver.de/context1 leitet der Apache ordnungsgemäß an den internen Tomcat auf Port 8080 weiter.
Nun muss ich aber auch der zusätzliche Dienst (interner.tomcat.Server:20443) auf dem Apache bereitstellenen und zwar ebenfalls über der Standard-HTTPS.
Meine Idee war nun, ich erfinde einen Context - dieser existiert weder im Apache noch im Tomcat - also einen virtuellen Context würde ich den mal nennen und benutze den um auf den internen zusätzlichen Dienst weiterzuleiten.
In der Apache-Konfiguration habe ich folgendes probiert.
Ich will also mit dem Aufruf von https://mein.Webserver.de/virtualcontext/ auf der internen URL http://interner.tomcat.Server:20443/ landen.
Das funktioniert leider nicht, intern wird die URL http://interner.tomcat.Server:20443/virtualcontext/ aufgerufen.
Ich hoffe es gibt jemanden der mir hier helfen kann und einen Tipp hat. Ist ne wichtige Sache, die ich unbedingt hinbekommen muss.
Vielen Dank schon einmal, und hoffentlich bis demnächst
ich habe zwar eine gewisse Erfahrung im Umgang mit dem Apache (auf Linux) würde mich aber nicht als einen Pro bezeichnen und habe aktuell ein Problem, bei dem ich nicht weiterkomme.
Ich habe einen Apache Webserver (mein.Webserver.de) der als Reverse Proxy fungiert. Dieser ist über Port 443 (HTTPS) erreichbar.
Auf einem weiteren Server, der nicht aus dem Web erreichbar ist habe ich einen embedded Tomcat der auf dem Port 8080 verschiedene Contexte bereit stellt.
Darüber hinaus startet dieser Webserver (interner.tomcat.Server) auf dem Port 20443 selbst einen Dienst.
mit folgender verkürzter Konfiguration funktioniert die Bereitstellung der Contexte (8080)
ProxyPass / http://interner.tomcat.Server:8080/ nocanon connectiontimeout=10 timeout=60
ProxyPassReverse / http://interner.tomcat.Server:8080/
Bein Aufruf von https://mein.Webserver.de/context1 leitet der Apache ordnungsgemäß an den internen Tomcat auf Port 8080 weiter.
Nun muss ich aber auch der zusätzliche Dienst (interner.tomcat.Server:20443) auf dem Apache bereitstellenen und zwar ebenfalls über der Standard-HTTPS.
Meine Idee war nun, ich erfinde einen Context - dieser existiert weder im Apache noch im Tomcat - also einen virtuellen Context würde ich den mal nennen und benutze den um auf den internen zusätzlichen Dienst weiterzuleiten.
In der Apache-Konfiguration habe ich folgendes probiert.
<Location "/virtualcontext/">
ProxyPass http://interner.tomcat.Server:20443/ nocanon connectiontimeout=10 timeout=60
ProxyPassReverse http://interner.tomcat.Server:20443/
</Location>
Ich will also mit dem Aufruf von https://mein.Webserver.de/virtualcontext/ auf der internen URL http://interner.tomcat.Server:20443/ landen.
Das funktioniert leider nicht, intern wird die URL http://interner.tomcat.Server:20443/virtualcontext/ aufgerufen.
Ich hoffe es gibt jemanden der mir hier helfen kann und einen Tipp hat. Ist ne wichtige Sache, die ich unbedingt hinbekommen muss.
Vielen Dank schon einmal, und hoffentlich bis demnächst
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 476488
Url: https://administrator.de/contentid/476488
Ausgedruckt am: 21.11.2024 um 16:11 Uhr
5 Kommentare
Neuester Kommentar
Moin,
grundsätzlich richtet man heutzutage ein Force SSL ein. Sprich alle HTTP Aufrufe werden serverseitig auf HTTPS umgeleitet. Das macht du wohl schon - GUT!
Probier es so:
Ungetestet, da ich als ReverseProxy hauptsächlich mit Nginx zu tun hatte.
Die Direktive Location kannst du wegelassen.
Gruß,
Dani
grundsätzlich richtet man heutzutage ein Force SSL ein. Sprich alle HTTP Aufrufe werden serverseitig auf HTTPS umgeleitet. Das macht du wohl schon - GUT!
Bein Aufruf von https://mein.Webserver.de/context1 leitet der Apache ordnungsgemäß an den internen Tomcat auf Port 8080 weiter.
Das funktioniert wahrscheinlich, weil es auf dem Tomcat das Verzeichnis context1 gibt?! Das geht aus deiner Beschreibung leider nicht hervor. Dahe rate ich einfach...Das funktioniert leider nicht, intern wird die URL http://interner.tomcat.Server:20443/virtualcontext/ aufgerufen.
Logisch, weil auf dem Tomcat das Verzeichnis virtualcontext nicht existiert.Probier es so:
ProxyPass /virtualcontext http://interner.tomcat.Server:20443/ nocanon connectiontimeout=10 timeout=60
ProxyPassReverse /virtualcontext http://interner.tomcat.Server:20443/
Die Direktive Location kannst du wegelassen.
Gruß,
Dani
Moin,
Versuch es einmal so:
Nach wie vor ungetestet.
Gruß,
Dani
Es soll ja / an den 8080 weitergeleitet werden, daher war die Idee mit dem nicht vorhandenen Context (vitualcontext) auf den Port 20443 direkt weiterzuleiten.
Danke für den Denkanstoß... da war ein Knoten in meinem Kopf. Versuch es einmal so:
...
<Location /virtualcontext>
ProxyPass http://interner.tomcat.Server:20443/
ProxyPassReverse http://interner.tomcat.Server:20443/
</Location>
...
Gruß,
Dani
Moin,
nachdem ich vorher ein bisschen Zeit hatte, habe ich unter Ubuntu 18.04.2 LTS einen Apache2 und Apache Tomcat aufgesetzt. Mein Tomcat lauscht auf Port 8080 und mein Apache2 auf Port 80. Meine oben geposteten Zeilen funktionieren bei mir in der Default Site ohne HTTPS problemlos. Hast du den Apache2 nach der Konfigurationsanpassung neu gestartet?
Gruß,
Dani
nachdem ich vorher ein bisschen Zeit hatte, habe ich unter Ubuntu 18.04.2 LTS einen Apache2 und Apache Tomcat aufgesetzt. Mein Tomcat lauscht auf Port 8080 und mein Apache2 auf Port 80. Meine oben geposteten Zeilen funktionieren bei mir in der Default Site ohne HTTPS problemlos. Hast du den Apache2 nach der Konfigurationsanpassung neu gestartet?
Gruß,
Dani