Nginx Reverse Proxy mit SSL – Schritt-für-Schritt-Anleitung

Aktualisiert am 30.10.2026 · Lesezeit ca. 5 Min. · Niveau: Anfänger · von Viktor Tribus, IT-Tribus Nideggen

In diesem Artikel erfahren Sie, wie Sie einen sicheren Reverse Proxy mit Nginx und SSL einrichten. Dies ist besonders wichtig für Homelab-Umgebungen oder Home-Office-Setup, um Ihre Anwendungen sicher über das Internet zugänglich zu machen.

Worum es geht und wann Sie das brauchen

Ein Reverse Proxy wie Nginx leitet eingehende HTTP-Anfragen an mehrere Backends weiter. Dies ist hilfreich, wenn Sie mehrere Webanwendungen auf einem Server betreiben möchten oder eine Anwendung hinter einer sicheren SSL-Schicht schützen wollen. Beispielsweise können Sie damit einen Docker-Container mit Portainer (https://it-tribus.de/portainer-einrichten/) sicher im Internet verfügbar machen.

Voraussetzungen

Vor der Einrichtung müssen folgende Punkte erfüllt sein:

  • Nginx installiert und laufend auf Ihrem Linux-Server (Ubuntu, RHEL, SUSE)
  • Root-Rechte für die Installation und Konfiguration
  • Eine Domain mit DNS-Eintrag auf Ihren Server
  • Certbot für HTTPS-Zertifikate

Prüfen Sie Nginx-Version:

Linux-Terminal (Bash)
sudo nginx -v

Überprüfen der Root-Rechte:

Linux-Terminal (Bash)
whoami

Wenn die Ausgabe „root“ ist, sind Sie berechtigt.

Schritt-für-Schritt-Anleitung

Schritt 1: Nginx installieren und starten

Erstellen Sie vorher einen Wiederherstellungspunkt auf Ihrem System. Installieren Sie Nginx:

Linux-Terminal (Bash)
sudo apt update
sudo apt install nginx

Prüfen, ob der Dienst läuft:

Linux-Terminal (Bash)
systemctl status nginx

Die Ausgabe sollte „active (running)“ enthalten.

Schritt 2: Certbot für SSL-Zertifikate einrichten

Certbot ist eine einfach zu bedienende Software, die Ihnen kostenloses HTTPS zur Verfügung stellt. Installieren Sie Certbot:

Linux-Terminal (Bash)
sudo apt install certbot python3-certbot-nginx

Dieser Schritt ist geschafft – weiter geht’s.

Schritt 3: Nginx-Konfiguration für Reverse Proxy erstellen

Öffnen Sie die Nginx-Konfigurationsdatei:

Linux-Terminal (Bash)
sudo nano /etc/nginx/sites-available/default

Fügen Sie folgenden Code hinzu, um einen Reverse Proxy zu konfigurieren:

Beispiel / Konfiguration
server 

Ersetzen Sie DOMAIN_NAME durch Ihre Domain und BACKEND_IP:PORT durch die IP-Adresse und den Port Ihres Backends (z. B. Docker-Container).

Speichern Sie die Datei und überprüfen Sie Nginx-Konfiguration:

Linux-Terminal (Bash)
sudo nginx -t

Die Ausgabe sollte „syntax is ok" sein.

Schritt 4: SSL-Zertifikate von Certbot erwerben und aktivieren

Rufen Sie Certbot auf, um die Zertifikate zu erwerben:

Linux-Terminal (Bash)
sudo certbot --nginx -d DOMAIN_NAME

Folgen Sie den Anweisungen im Terminal. Nach dem erfolgreichen Erhalt der Zertifikate wird Nginx automatisch neu konfiguriert.

Prüfen, ob die Zertifikate korrekt installiert sind:

Linux-Terminal (Bash)
sudo nginx -t

Schritt 5: Nginx-Service neustarten und prüfen

Neustart des Services:

Linux-Terminal (Bash)
sudo systemctl restart nginx

Überprüfen Sie, ob der Service läuft:

Linux-Terminal (Bash)
systemctl status nginx

Die Ausgabe sollte „active (running)“ enthalten.

Öffnen Sie Ihren Browser und laden Sie Ihre Domain mit HTTPS auf. Die Anwendung hinter dem Reverse Proxy sollte jetzt sichtbar sein.

Schritt 6: Zertifikate regelmäßig aktualisieren

Certbot legt einen Cron-Job für die automatische Aktualisierung der Zertifikate an. Überprüfen Sie den Job:

Linux-Terminal (Bash)
crontab -l

Die Ausgabe sollte eine Zeile mit „certbot renew“ enthalten.

Die wichtigsten Befehle im Überblick

Befehl Wirkung Hinweis
sudo apt update Aktualisiert Paketlisten Vor jeder Installation notwendig
sudo apt install nginx Nginx-Installation Führen Sie mit Root-Rechten aus
systemctl status nginx Liest den Status des Nginx-Dienstes Überprüfen, ob der Dienst läuft
sudo nano /etc/nginx/sites-available/default Öffnet die Konfigurationsdatei Bearbeiten Sie hier den Reverse Proxy
sudo certbot --nginx -d DOMAIN_NAME Erfasst SSL-Zertifikate von Certbot Führen Sie mit Root-Rechten aus
sudo systemctl restart nginx Neustart des Nginx-Services Nach Konfigurationen notwendig
crontab -l Liest die Cron-Jobs aus Überprüfen Sie den Zertifikataktualisierungsjob
sudo nginx -t Testet die Nginx-Konfiguration Nach Änderungen notwendig

Häufige Fehler und ihre Lösung

Fehlermeldung: „nginx: emerg bind() to 0.0.0.0:80 failed (98: Address already in use)“

Ursache: Ein anderes Programm verwendet bereits den Port 80.

Lösung: Stoppen Sie das betreffende Programm oder ändern Sie den Port in der Konfiguration.

Fehlermeldung: „Failed authorization procedure. DOMAIN_NAME (http-01): urn:ietf:params:acme:error:dns :: DNS problem“

Ursache: Ihre Domain ist nicht korrekt eingetragen oder DNS-Eintrag fehlt.

Lösung: Überprüfen Sie Ihren DNS-Eintrag und stellen Sie sicher, dass er auf die richtige IP zeigt. Warten Sie einige Stunden, bis sich der Eintrag durchgesetzt hat.

Fehlermeldung: „nginx: emerg unknown „proxy_pass“ directive“

Ursache: Falsche Syntax in der Nginx-Konfiguration.

Lösung: Überprüfen und korrigieren Sie die Konfigurationsdatei. Stellen Sie sicher, dass „proxy_pass“ korrekt verwendet wird.

Fehlermeldung: „404 Not Found“

Ursache: Die angeforderte Ressource wurde nicht gefunden.

Lösung: Überprüfen Sie Ihre Konfiguration und stellen Sie sicher, dass die Pfade korrekt sind. Achten Sie auf falsche Zeilenenden oder fehlende Dateien im Backend.

Änderungen rückgängig machen

Um Änderungen rückgängig zu machen, können Sie das Original der Nginx-Konfigurationsdatei wiederherstellen:

Linux-Terminal (Bash)
sudo mv /etc/nginx/sites-available/default.bak /etc/nginx/sites-available/default
sudo systemctl restart nginx

Dies bringt die Konfiguration auf den Stand vor Ihren Änderungen zurück.

Häufige Fragen

1. Muss ich für jede Domain eine separate Konfigurationsdatei erstellen?

Nein, Sie können mehrere Server-Blöcke in der gleichen Datei definieren oder einzelne Dateien im Verzeichnis /etc/nginx/sites-available/ anlegen und sie mit ln -s auf /etc/nginx/sites-enabled/ verweisen.

2. Kann ich mehrere Anwendungen hinter demselben Reverse Proxy betreiben?

Ja, durch die Verwendung von Unterdomänen oder Pfaden können Sie verschiedene Backends im gleichen Reverse Proxy konfigurieren.

3. Wofür brauche ich Certbot?

Certbot automatisiert das Erwerben und Verwalten von SSL-Zertifikaten, um Ihre Anwendungen sicher mit HTTPS bereitzustellen.

4. Kann ich den Reverse Proxy für Docker-Container verwenden?

Ja, Sie können Ihren Reverse Proxy so konfigurieren, dass er Docker-Containern als Backends dient. Dies ist besonders praktisch in Homelab-Umgebungen (https://it-tribus.de/docker-compose/).

5. Was mache ich, wenn Nginx nach einer Änderung nicht mehr startet?

Testen Sie Ihre Konfiguration mit sudo nginx -t. Die Ausgabe gibt Hinweise auf mögliche Fehler in Ihrer Konfigurationsdatei.

Fazit: Ein Reverse Proxy mit Nginx und SSL ist eine wichtige Schritt, um Ihre Anwendungen sicher über das Internet zugänglich zu machen. Bei Schwierigkeiten können Sie sich gerne an IT-Tribus in Nideggen wenden.

Quellen und weiterführende Informationen

Hinweis: Dieser Beitrag wurde am 30.10.2026 mit KI-Unterstützung erstellt, auf Basis der genannten Quellen eigenständig formuliert und redaktionell von IT-Tribus betreut. Alle Angaben ohne Gewähr – bitte prüfen Sie Befehle vor dem Einsatz in produktiven Umgebungen und legen Sie vorher eine Sicherung an.

Benötigen Sie Unterstützung bei Nginx Reverse Proxy SSL?

IT-Tribus ist Ihr IT-Dienstleister aus Nideggen. Vor Ort helfen wir in Düren, im Kreis Düren und in der Region Aachen – Monitoring und Fernwartung mit NinjaOne bieten wir Unternehmen auch überregional an.

Kostenlose Erstanalyse anfordern
📞 02427 9099860