Reverse Proxy Grundlagen

Aus Xinux Wiki
Version vom 27. Juli 2025, 07:08 Uhr von Thomas.will (Diskussion | Beiträge) (→‎Komponenten und Beispiele)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

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.