jellybrain
Goto Top

Apache - reverse proxy

Hallo,

wie kann man via Apache mod_proxy Anfragen an einen vhost an einen anderen Server in einem Privaten Netz weiterleiten?

Der 1. Apache Server liegt hinter einer Firewall und wird durch NAT von außen angesprochen.
Nun sollen alle Anfragen die an diesen Server gehen an andere Server, abhängig von aufgerufenen Subdomain, weitergeleitet werden.
Statische IPv4 steht zur Verfügung.

server1 -> 192.168.188.2 (Hier läuft seit Jahren eine OwnCloud )
sub1.srv1 -> 192.168.188.121 -> (via Proxy) -> sub1.local (NextCloud <- Die OwnCloud soll hier nach und nach ersetzt werde)
sub2.srv1 -> 192.168.188.122 -> (via Proxy) -> sub2.local (eventuell ein Pi mit PiHole.

Das alles ist die Infrastruktur für einen Verein. Ich stelle mich irgendwie zu doof an ein Reverseproxy auf dem vorhanden Server (192.168.188.1) einzurichten. Dort läuft ein Apache2 Server. Das ganze soll auch weiterhin mit Apache2 laufen.


Die Subdomains sollten statisch sein, und nicht innerhalb der Apache Konfiguration fest definiert sein.


Hat da einer einen Tipp für mich?

Viele Grüße und einen schönen 3. Advent

Tim

Content-ID: 4926669827

Url: https://administrator.de/contentid/4926669827

Ausgedruckt am: 22.11.2024 um 12:11 Uhr

it-fraggle
it-fraggle 11.12.2022 um 13:36:15 Uhr
Goto Top
Grüß dich.
Da du die Frage stellst, gehe ich davon aus, dass du sehr wenig Ahnung hast. Aus dem Grund möchte ich dir den Nginx Proxy Manager vorschlagen.
jellybrain
jellybrain 11.12.2022 um 13:47:59 Uhr
Goto Top
Hallo @it-fraggle,
über dieses Tool bin ich auch schon aufmerksam geworden. Aber da auf dem gewünschten Server schon Apache2 und die passenden Module laufen, möchte ich ungern noch den Nginx Proxy Manager laufen lassen.
Oder lässt sich dieser ohne weitere Probleme neben Apache2 betreiben ?
michi1983
michi1983 11.12.2022 um 14:12:23 Uhr
Goto Top
Zitat von @jellybrain:
Oder lässt sich dieser ohne weitere Probleme neben Apache2 betreiben ?

Deine Frage zeigt, dass du den Link nicht gelesen hast, richtig?

Das ist ein fertiges Docker Image.

Gruß
jellybrain
jellybrain 11.12.2022 um 14:18:18 Uhr
Goto Top
Ja doch das habe ich schon gelesen. Aber ich möchte eigentlich ungern Docker zusätzlich installieren.
Mir ist es wichtig auch das Prinzip zu verstehen.
Vielleich ist noch zu erwähnen:
Den server1 wird es auch nur noch so lange geben, bis alles von server1 (owncloud) auf server2 (nextcloud) migiert und umgezogen wurde.
Ich weiß das mir da zum Teil etwas das Wissen fehlt aber ich bin bereit sämtlich Sachen zu probieren und zu ergründen bis es funktioniert.
Cloudrakete
Cloudrakete 11.12.2022 um 14:40:00 Uhr
Goto Top
Moin,

wenn ich dich richtig verstehe liegt auf diesem bestehenden Apache ja schon irgendeine Web-App.
Darauf hat keine Reverse Proxy-Funktion irgendetwas verloren.

Die Web-App ist und bleibt eine Web-App und der Reverse Proxy läuft wo anders (eigener Server / Container)
Sonst macht das Prinzip Reverse Proxy auch nicht mehr wirklich Sinn, vorallem wenn man das ganze mal weiterdenkt mit WAF-Funktionalitäten (afaik läuft das unter ModSecurity bei NGINX)

Son NGINX-Container für deine (überschaubaren) Webressourcen braucht kaum Compute-Ressourcen, also erstell doch einfach einen weiteren Container und richtige das entsprechend.

Zu deiner Frage "neben den Apache" laufen lassen:

Ja, natürlich läuft der auch "neben Apache" ...
Du richtest auf dem NGINX entsprechende Listner für alle gewünschten Subdomains ein, hinterlegst die entsprechenden Zertifikate und sagst dem NGINX noch "wo" der jeweilige Server, zu der jeweiligen Subdomain liegt (IP-Adresse oder interner DNS-Name)

Fertig ist der Lack, stark vereinfacht beschrieben.
jellybrain
jellybrain 11.12.2022 um 14:58:00 Uhr
Goto Top
Ah okay, das auf dem von mir gemeinten Server läuft derzeit über Apache2 eine Owncloud (Webapp)
Und da wollte ich auch den Reverse Proxy dazu konfigurieren. Aber da hatte ich dann wohl eine falsche Herangehensweise.
Das brintgt mich jetzt schonmal in eine bessere Richtung.
Ich werde es mal probieren auf einem Raspberry Pi nen den Nginx Proxy Manger aufzusetzen.
Und von da aus alles zu steuern.

Vielen Dank für die Antwort face-smile
Cloudrakete
Cloudrakete 11.12.2022 um 15:24:55 Uhr
Goto Top
Mach es dann aber bitte richtig und erstelle für den NGINX ein eigenes Netz und regele den Traffic somit sauber über eine Firewall.

  • Nginx kommt in ein eigenes Netz
  • Pi-Hole kommt in ein eigenes Netz
  • Die Owncloud und Nextcloud kommen für den Übergang in ein eigenes Netz

Pi-Hole handelst Du aber bitte nicht via Nginx ab. Einen Reverse-Proxy nutzt man ja idr. um Traffic aus dem Internet auf interne Server weiterzuleiten. Ein Pi-Hole als DNS-Server sollte nicht mit seiner Web-GUI im Internet stehen. Sonst kannst du die Stunden zählen, bis das Ding platt ist face-smile

Und zwischen allen Netzen richtest Du die Regeln ein, die der jeweilige Dienst benötigt. Wenn Du z.B. (intern) via Port "4433" auf die Owncloud Web-GUI (User) zugreifen willst, erstellst du eine Regel welche Port 4433 vom Nginx-Host auf den OwnCloud Host zulässt. Selbiges für alle anderen benötigsten Ports / Dienste.

P.S: Was für PI-Holes Admin-GUI gilt, gilt auch für Own- sowie NextCloud. Admin-GUI nicht via Internet. Nur von intern, bzw. von "außen" via VPN.
jellybrain
jellybrain 11.12.2022 um 16:48:11 Uhr
Goto Top
Vielen Dank @Cloudrakete damit werde ich es im Laufe der nächsten Woche mal versuchen und wenn es Probleme geben sollte melde ich mich nochmal.

Vielen Dank natürlich auch an die Anderen.

Allen noch einen entspannten Sonntag.