Reverse Proxy für Selbsthoster: Ein einziger Zugang für alle Dienste

Back

Ihr habt mittlerweile mehrere Dienste auf eurem Server laufen. Nextcloud hier, Pi-hole da, Jellyfin irgendwo, vielleicht noch ein paar Test-Projekte. Und jedes Mal, wenn ihr auf einen Dienst zugreifen wollt, müsst ihr euch merken: Nextcloud läuft auf Port 8080, Pi-hole auf Port 8053, Jellyfin auf Port 8096. Und wehe, ihr vergesst den Port – dann heißt es erstmal nachschauen.

Das geht besser. Viel besser.

Willkommen in der Welt der Reverse Proxys. Ein Werkzeug, das euer Server-Leben grundlegend verändert.


Was ist ein Reverse Proxy überhaupt?

Stellt euch einen Pförtner vor. Vor eurem Server steht eine einzige Tür – Port 80 für normalen Webverkehr und Port 443 für verschlüsselten HTTPS-Verkehr. Dahinter sitzt der Pförtner. Wenn jemand anklopft und "nextcloud.meinserver.de" ruft, leitet der Pförtner die Anfrage an den Nextcloud-Container weiter. Ruft jemand "jellyfin.meinserver.de", geht's zum Jellyfin-Container.

Der Pförtner ist der Reverse Proxy. Er nimmt alle Anfragen entgegen und verteilt sie an die richtigen Dienste im Hintergrund.

Und das Beste: Nach außen hin sieht es aus, als würden alle Dienste direkt auf dem Server laufen. Die Ports bleiben verborgen, die Dienste sind sauber getrennt, und ihr müsst euch nur noch eine einzige Adresse merken: eure Server-Domain.


Warum ihr einen Reverse Proxy braucht

1. Schluss mit Port-Nummern

http://deinserver.de:8080 ist nicht schön. https://nextcloud.deinserver.de schon. Ein Reverse Proxy macht's möglich. Jeder Dienst bekommt seine eigene Subdomain oder URL.

2. Ein SSL-Zertifikat für alle

HTTPS ist heute Pflicht. Ohne Verschlüsselung geht nichts mehr. Mit einem Reverse Proxy könnt ihr ein einziges SSL-Zertifikat für alle eure Dienste verwenden – automatisch erneuert mit Let's Encrypt. Statt für jeden Dienst einzeln Zertifikate zu verwalten, kümmert sich der Proxy um alles.

3. Zentraler Zugangsschutz

Ihr wollt bestimmte Dienste nur mit Passwort zugänglich machen? Der Reverse Proxy kann das für alle Dienste zentral erledigen. Einmal konfiguriert, sind alle dahinter liegenden Dienste geschützt – auch wenn sie selbst keine Authentifizierung unterstützen.

4. Performance-Optimierung

Ein Reverse Proxy kann statische Dateien cachen, Verbindungen komprimieren und Last verteilen. Eure Dienste werden schneller, ohne dass ihr sie selbst optimieren müsst.

5. Flexibilität ohne Ausfallzeiten

Ihr wollt einen Dienst auf einen anderen Server umziehen? Ändert einfach die Proxy-Konfiguration, und die Besucher merken nichts. Der Dienst bleibt unter der gleichen Adresse erreichbar.


Die Kandidaten: Welcher Reverse Proxy passt zu euch?

Nginx Proxy Manager – Der Einsteigerfreundliche

Wer keine Lust hat, stundenlang Konfigurationsdateien zu schreiben, wird den Nginx Proxy Manager lieben. Eine hübsche Weboberfläche, SSL-Zertifikate mit einem Klick, Zugangsschutz per Mausklick.

Installation mit Docker Compose:

yaml

version: '3'

services:
  nginx-proxy-manager:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: nginx-proxy-manager
    restart: unless-stopped
    ports:
      - '80:80'      # HTTP
      - '81:81'      # Admin-Oberfläche
      - '443:443'    # HTTPS
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Dann öffnet ihr http://deinserver.de:81, loggt euch ein (Standard: admin@example.com / changeme) und schon könnt ihr über die Weboberfläche eure ersten Proxy-Regeln anlegen.

Perfekt für: Alle, die eine einfache, grafische Lösung wollen.

Traefik – Der Moderne für Docker-Fans

Traefik ist der Star unter den Reverse Proxys, wenn ihr Docker nutzt. Er erkennt automatisch neue Container und konfiguriert sich selbst. Docker-Labels genügen, um einen Dienst freizuschalten.

Eine einfache docker-compose.yml für Traefik:

yaml

version: '3'

services:
  traefik:
    image: traefik:v3.0
    container_name: traefik
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.letsencrypt.acme.email=deine@email.de"
      - "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
      - "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
      - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"  # Traefik Dashboard
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "./letsencrypt:/letsencrypt"
    restart: unless-stopped

Und so macht ihr einen Dienst dahinter erreichbar:

yaml

services:
  nextcloud:
    image: nextcloud:latest
    container_name: nextcloud
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.nextcloud.rule=Host(`nextcloud.deinserver.de`)"
      - "traefik.http.routers.nextcloud.entrypoints=websecure"
      - "traefik.http.routers.nextcloud.tls=true"
      - "traefik.http.routers.nextcloud.tls.certresolver=letsencrypt"
    volumes:
      - nextcloud_data:/var/www/html
    restart: unless-stopped

Mehr nicht. Traefik erkennt den neuen Container, holt automatisch ein SSL-Zertifikat und leitet Anfragen an nextcloud.deinserver.de an Nextcloud weiter.

Perfekt für: Docker-Liebhaber und alle, die Automatisierung lieben.

Caddy – Der Einfachste von allen

Caddy ist der König der Einfachheit. Die Konfiguration ist so simpel, dass man kaum glaubt, dass es funktioniert. Und SSL-Zertifikate? Holt Caddy automatisch.

Eine minimalistische Caddy-Konfiguration in einer Caddyfile:

text

nextcloud.deinserver.de {
    reverse_proxy nextcloud:80
}

jellyfin.deinserver.de {
    reverse_proxy jellyfin:8096
}

Das war's. Caddy holt selbstständig SSL-Zertifikate und leitet den Traffic weiter.

Als Docker-Container:

yaml

version: '3'

services:
  caddy:
    image: caddy:latest
    container_name: caddy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config
    restart: unless-stopped

volumes:
  caddy_data:
  caddy_config:

Perfekt für: Minimalisten und alle, die einfach nur funktionierende Lösungen wollen.

HAProxy – Der Profi für Hochverfügbarkeit

HAProxy ist der Urvater der Reverse Proxys. Er ist unglaublich schnell, extrem stabil und wird in großen Produktionsumgebungen eingesetzt. Aber die Konfiguration ist textbasiert und nicht ganz trivial.

Perfekt für: Fortgeschrittene mit hohen Ansprüchen an Performance und Zuverlässigkeit.

SWAG – Die Komplettlösung von LinuxServer.io

SWAG steht für "Secure Web Application Gateway" und ist mehr als nur ein Reverse Proxy. Es kommt mit vorkonfigurierten Sicherheits-Einstellungen, Fail2ban, und Unbound DNS. Ideal für alle, die eine fertige, abgesicherte Lösung wollen.

Perfekt für: Sicherheitsbewusste, die nicht alles selbst konfigurieren wollen.


Die Praxis: So richtet ihr euren ersten Reverse Proxy ein

Nehmen wir den Nginx Proxy Manager, weil er für Einsteiger am einfachsten ist.

Schritt 1: Installation

Erstellt ein Verzeichnis für den Proxy Manager und darin eine docker-compose.yml mit dem obigen Inhalt. Startet mit docker-compose up -d.

Schritt 2: Admin-Oberfläche aufrufen

Öffnet http://deinserver.de:81 in eurem Browser. Loggt euch mit admin@example.com und changeme ein. Ihr werdet sofort aufgefordert, Benutzername und Passwort zu ändern.

Schritt 3: Domain-Einträge vorbereiten

Ihr braucht für jeden Dienst, den ihr nach außen geben wollt, eine Subdomain, die auf eure Server-IP zeigt. Also zum Beispiel:

  • nextcloud.deinserver.de → eure IP

  • jellyfin.deinserver.de → eure IP

  • pihole.deinserver.de → eure IP

Das konfiguriert ihr im DNS eurer Domain.

Schritt 4: Ersten Proxy-Eintrag anlegen

Im Nginx Proxy Manager klickt ihr auf "Proxy Hosts" und dann "Add Proxy Host".

  • Domain Names: nextcloud.deinserver.de

  • Scheme: http

  • Forward Hostname / IP: Die IP oder der Container-Name eures Nextcloud-Dienstes (z.B. nextcloud wenn ihr Docker-Netzwerke nutzt, oder 192.168.1.100)

  • Forward Port: Der Port, auf dem Nextcloud läuft (meist 80 im Container)

Dann wechselt ihr zum Reiter "SSL":

  • SSL Certificate: "Request a new SSL Certificate"

  • Email: Eure E-Mail-Adresse für Let's Encrypt

  • Agree to Terms: Anhaken

  • Force SSL: Anhaken

Speichern. Fertig.

Nach ein paar Sekunden ist https://nextcloud.deinserver.de erreichbar und hat ein gültiges SSL-Zertifikat.

Schritt 5: Wiederholen für alle Dienste

Macht das Gleiche für Jellyfin, Pi-hole und alle anderen Dienste. Jeder bekommt seine eigene Subdomain, alle laufen über Port 443.


Erweiterte Funktionen für Profis

Zugangsschutz mit Basic Auth

Im Nginx Proxy Manager könnt ihr unter "Access List" Benutzer und Passwörter anlegen. Dann weist ihr einem Proxy-Host diese Access List zu. Wer den Dienst aufruft, muss sich erst authentifizieren – unabhängig davon, ob der Dienst selbst eine Authentifizierung hat.

Custom Locations

Manchmal wollt ihr nicht die ganze Domain weiterleiten, sondern nur einen Pfad. Zum Beispiel meinserver.de/nextcloud statt nextcloud.meinserver.de. Das geht mit Custom Locations.

WebSockets

Dienste wie Nextcloud Talk oder manche Spiele brauchen WebSockets. Im Nginx Proxy Manager müsst ihr dafür die Option "WebSockets Support" aktivieren.

Caching

Für statische Inhalte könnt ihr Caching aktivieren. Das entlastet eure Dienste und macht alles schneller.


Sicherheitstipps für euren Reverse Proxy

1. Immer HTTPS erzwingen

Stellt sicher, dass HTTP-Anfragen automatisch auf HTTPS weitergeleitet werden. Der Nginx Proxy Manager macht das mit "Force SSL". Bei Traefik und Caddy ist das Standard.

2. Admin-Oberfläche schützen

Die Admin-Oberfläche eures Reverse Proxys sollte nicht im Internet offen sein. Ändert den Port, schützt sie mit einem starken Passwort, oder bindet sie nur an localhost und nutzt einen SSH-Tunnel für den Zugriff.

3. Regelmäßige Updates

Haltet euren Reverse Proxy aktuell. Sicherheitslücken werden schnell gefunden und gepatcht.

4. Rate Limiting

Begrenzt die Anzahl der Anfragen pro IP, um Brute-Force-Angriffe zu erschweren. Viele Reverse Proxys können das.

5. Fail2ban integrieren

Einige Reverse Proxys (wie SWAG) kommen mit Fail2ban. Das sperrt IPs, die verdächtige Muster zeigen.


Fehlerbehebung: Wenn's nicht läuft

"Ich bekomme kein SSL-Zertifikat"

Häufige Ursachen:

  • Die Domain zeigt nicht auf eure Server-IP

  • Port 80 ist nicht erreichbar (wird für die Validierung benötigt)

  • Firewall blockiert eingehende Verbindungen

"Der Dienst ist erreichbar, aber Bilder/CSS fehlen"

Das liegt oft an falsch konfigurierten Basis-Pfaden. Manche Dienste erwarten, unter einem bestimmten Pfad zu laufen. Stellt sicher, dass ihr die richtige Domain und ggf. die richtigen Header konfiguriert.

"WebSockets funktionieren nicht"

Aktiviert explizit die WebSocket-Unterstützung in eurem Proxy. Bei Traefik braucht es einen speziellen Eintrag, beim Nginx Proxy Manager einen Haken in der Oberfläche.

"Seite lädt ewig, dann Fehler"

Prüft, ob der Backend-Dienst wirklich erreichbar ist. Könnt ihr von eurem Server aus auf http://dienst:port zugreifen? Wenn nicht, stimmt das Netzwerk.


Die perfekte Kombination: Reverse Proxy + Docker + Let's Encrypt

Das ist der heilige Gral des Selbsthostings:

  • Docker isoliert eure Dienste und macht sie einfach verwaltbar

  • Reverse Proxy gibt ihnen saubere Adressen und SSL

  • Let's Encrypt sorgt für kostenlose, automatisch erneuerte Zertifikate

Einmal eingerichtet, läuft das Setup Jahre ohne manuelle Eingriffe. Ihr installiert neue Dienste per Docker Compose, gebt ihnen ein Label für den Proxy, und alles ist sofort mit SSL erreichbar.

Fazit: Ein Reverse Proxy ist Pflicht

Wer mehr als zwei Dienste auf seinem Server betreibt, braucht einen Reverse Proxy. Punkt. Die Zeit, die ihr in die Einrichtung investiert, bekommt ihr durch Komfort und Sicherheit hundertfach zurück.

Keine Port-Nummern mehr merken, kein manuelles SSL mehr verwalten, zentraler Zugangsschutz – die Vorteile sind so offensichtlich, dass man sich fragt, warum man nicht früher damit angefangen hat.

Unser Tipp: Startet mit dem Nginx Proxy Manager, wenn ihr eine GUI wollt. Oder mit Traefik, wenn ihr Docker intensiv nutzt. Oder mit Caddy, wenn ihr Minimalismus liebt. Alle drei sind hervorragende Werkzeuge – der Rest ist Geschmackssache.

Und wenn ihr einmal damit gearbeitet habt, werdet ihr nie wieder zurückwollen.

More blog articles

  Du suchst nach einem neuen Server oder Webhosting und wirst von günstigen Lockangeboten überschüttet? Vorsicht – was auf den ersten Blick wie ein Schnäppchen aussieht, kann langfristig zu einer teuren Überraschung werden. Wir zeigen d...

Was ist eigentlich... Webspace? Einfach erklärt (nicht nur für Oma!) Hast du schon mal von Webspace gehört und gedacht: "Was soll das sein?" Keine Sorge, du bist nicht allein. Viele Leute wissen nicht, was das ist - dabei nutzen sie es jeden Tag....

Du hast bereits erste Erfahrungen mit Minecraft Servern gesammelt und möchtest jetzt deinen eigenen, professionellen Server aufsetzen? Egal ob du mit Mods, Plugins oder im klassischen Vanilla-Stil spielen willst – dieser Guide führt dich durch die wichtigsten...