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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4926669827
Url: https://administrator.de/contentid/4926669827
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
8 Kommentare
Neuester Kommentar
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.
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.
Deine Frage zeigt, dass du den Link nicht gelesen hast, richtig?
Das ist ein fertiges Docker Image.
Gruß
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.
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.
Mach es dann aber bitte richtig und erstelle für den NGINX ein eigenes Netz und regele den Traffic somit sauber über eine Firewall.
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
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.
- 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
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.