Reverse Proxy Grundlagen: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „= Reverse Proxy – Theorie und Grundlagen = == Einleitung == Ein Reverse Proxy ist ein Server, der Anfragen von Clients entgegennimmt und sie an einen oder m…“)
 
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
= Reverse Proxy – Theorie und Grundlagen =
 
 
 
== Einleitung ==
 
== Einleitung ==
 
Ein Reverse Proxy ist ein Server, der Anfragen von Clients entgegennimmt und sie an einen oder mehrere interne Server weiterleitet. Im Gegensatz zum Forward Proxy, der den Client schützt, schützt der Reverse Proxy die Server.
 
Ein Reverse Proxy ist ein Server, der Anfragen von Clients entgegennimmt und sie an einen oder mehrere interne Server weiterleitet. Im Gegensatz zum Forward Proxy, der den Client schützt, schützt der Reverse Proxy die Server.
Zeile 44: Zeile 42:
 
** Traefik
 
** Traefik
 
** Caddy
 
** Caddy
* Anwendungsbeispiele:
+
* Typische Anwendungsszenarien:
** Zugriff auf `app1.domain.tld` → interner Port 8081
+
** Aufruf der Subdomain app1.domain.tld wird intern an Port 8081 weitergeleitet
** Zugriff auf `api.domain.tld` → interner Port 9000
+
** Aufruf der Subdomain api.domain.tld wird intern an Port 9000 weitergeleitet
** SSL wird am Reverse Proxy terminiert, Backend nur HTTP
+
** SSL/TLS wird am Reverse Proxy beendet, das Backend verwendet unverschlüsseltes HTTP
  
 
== Erweiterte Funktionen ==
 
== Erweiterte Funktionen ==

Aktuelle Version vom 27. Juli 2025, 07:08 Uhr

Einleitung

Ein Reverse Proxy ist ein Server, der Anfragen von Clients entgegennimmt und sie an einen oder mehrere interne Server weiterleitet. Im Gegensatz zum Forward Proxy, der den Client schützt, schützt der Reverse Proxy die Server.

Funktionsweise

Ein Client stellt eine HTTP- oder HTTPS-Anfrage an eine öffentliche Adresse. Der Reverse Proxy nimmt diese entgegen und leitet sie intern an den passenden Server weiter. Die Antwort des internen Servers wird wieder durch den Proxy zurück zum Client geschickt.

Vorteile

  • Schutz der internen Infrastruktur durch Adressmaskierung
  • Lastverteilung (Load Balancing) zwischen mehreren Backend-Servern
  • SSL/TLS-Terminierung (HTTPS endet am Proxy, internes Netz bleibt unverschlüsselt)
  • Zentrales Logging und Monitoring
  • Caching zur Performance-Optimierung
  • Möglichkeit zur zentralen Authentifizierung
  • Integration von WAF-Mechanismen (Web Application Firewall)
  • URL-Rewriting und Pfadweiterleitungen

Einsatzszenarien

  • Veröffentlichung interner Webanwendungen
  • Zugriff auf containerisierte Dienste (z. B. Docker)
  • Mandantenfähige Systeme mit Subdomain- oder Pfadtrennung
  • Absicherung von APIs
  • Wartungsmodus und Fehlerseiten zentral steuerbar

Unterschiede zum Forward Proxy

Merkmal Forward Proxy Reverse Proxy
Position im Netz Vor dem Client Vor dem Server
Bekannt beim Client Ja (explizit konfiguriert) Nein (transparent)
Zweck Zugriffskontrolle nach außen Schutz und Verteilung eingehender Zugriffe
Typische Nutzung Arbeitsplatz-Internetfilter Webserver-Firewall oder Load Balancer

Komponenten und Beispiele

  • Reverse Proxies:
    • NGINX
    • Apache mit mod_proxy
    • HAProxy
    • Traefik
    • Caddy
  • Typische Anwendungsszenarien:
    • Aufruf der Subdomain app1.domain.tld wird intern an Port 8081 weitergeleitet
    • Aufruf der Subdomain api.domain.tld wird intern an Port 9000 weitergeleitet
    • SSL/TLS wird am Reverse Proxy beendet, das Backend verwendet unverschlüsseltes HTTP

Erweiterte Funktionen

  • Health Checks für Backend-Server
  • Sticky Sessions (Session-Pinning auf bestimmten Server)
  • HTTP Header Manipulation (z. B. X-Forwarded-For)
  • Rate Limiting und IP-Blocking

Sicherheitsaspekte

  • Angriffsfläche des Backends wird reduziert
  • SSL-Management zentralisiert
  • Möglichkeit zur Authentifizierung per LDAP, SSO, 2FA
  • Kontrolle über eingehende Methoden (nur GET/POST erlaubt)

Fazit

Ein Reverse Proxy ist ein zentrales Element moderner Web-Infrastrukturen. Er erhöht Sicherheit, Performance und Flexibilität. Besonders in Kombination mit Containern, Microservices oder Zero-Trust-Architekturen ist er unverzichtbar.