Vollständige Anleitung zum Erstellen eines sicheren Nginx-Reverse-Proxys
Die Einrichtung eines sicheren, zuverlässigen und skalierbaren Reverse-Proxys ist für Unternehmen und IT-Experten, die stark frequentierte Websites oder komplexe Anwendungen verwalten, von entscheidender Bedeutung. Nginx, ein Open-Source-Webserver und Reverse-Proxy, ist eine leistungsstarke Lösung für das Routing, die Optimierung und die Sicherung des Datenverkehrs zu Ihren Backend-Diensten. In dieser Anleitung erläutern wir die Einrichtung eines robusten Reverse-Proxys mit Nginx unter Ubuntu 24.04 und behandeln dabei wichtige Schritte wie TLS-Verschlüsselung, Ratenbegrenzung und die Integration mit Cloudflare.
Wenn Sie Websites, E-Commerce-Plattformen oder Medienserver auf Unternehmensebene verwalten, können Sie mit diesem Handbuch die Leistung verbessern, die Betriebszeit sicherstellen und Ihre Infrastruktur vor Sicherheitslücken schützen.
Was ist ein Nginx-Reverse-Proxy?
Ein Nginx-Reverse-Proxy fungiert als Vermittler zwischen Clients und Backend-Diensten. Er leitet Client-Anfragen an den entsprechenden Backend-Server weiter, optimiert die Lastverteilung, erhöht die Sicherheit und ermöglicht Funktionen wie Caching, SSL-Terminierung und Traffic-Filterung. Dieses Setup eignet sich besonders für das Hosting von Medienservern, Multi-Site-Anwendungen und Diensten hinter Firewalls.
sbb-itb-59e1987
Warum Sie einen Reverse-Proxy benötigen
Ein Reverse-Proxy bietet mehrere wichtige Vorteile:
- Verbesserte Sicherheit: Verbirgt die IPs der Backend-Server und aktiviert die Verschlüsselung über TLS/SSL.
- Lastenausgleich: Verteilt den Datenverkehr gleichmäßig auf mehrere Backend-Server.
- Optimierung: Reduziert die Latenz und verbessert die Ressourceneffizienz.
- Skalierbarkeit: Erleichtert die Verwaltung von Szenarien mit hohem Datenverkehr.
- Einfache Verwaltung: Vereinfacht die Konfiguration mehrerer Backend-Dienste hinter einer einheitlichen Domäne.
In diesem Tutorial zeigen wir Ihnen Folgendes:
- Richten Sie Nginx als Reverse-Proxy ein.
- Sichern Sie Ihr Setup mit TLS-Zertifikaten von Let’s Encrypt.
- Konfigurieren Sie erweiterte Optimierungen wie Ratenbegrenzung und Anforderungsweiterleitung.
- Integrieren Sie Cloudflare, um Portbeschränkungen Ihres ISPs zu umgehen.
Schritt 1: Installieren von Nginx und Certbot unter Ubuntu 24.04
Aktualisieren Sie Ihr System
Stellen Sie vor der Installation von Software sicher, dass Ihr System auf dem neuesten Stand ist:
sudo apt update && sudo apt upgrade Installieren Sie Nginx und Certbot
Verwenden Sie die folgenden Befehle, um Nginx und Certbot mit dem Nginx-Plugin zu installieren:
sudo apt install nginx -y sudo apt install certbot python3-certbot-nginx -y Installation überprüfen
Bestätigen Sie, dass Nginx ausgeführt wird:
sudo systemctl status nginx Um den Zugriff zu testen, ermitteln Sie die IP-Adresse Ihres Servers:
IP a Rufen Sie die IP-Adresse in einem Browser auf. Bei erfolgreichem Aufruf wird die standardmäßige Nginx-Begrüßungsseite angezeigt.
Schritt 2: Konfigurieren von Firewall-Regeln
Unkomplizierte Firewall (UFW) aktivieren
Mit UFW können Sie Firewall-Regeln einfach verwalten:
sudo ufw erlauben 'Nginx Full' sudo ufw erlauben OpenSSH sudo ufw aktivieren Überprüfen Sie den Status Ihrer Firewall, um sicherzustellen, dass die richtigen Ports geöffnet sind:
sudo ufw-Status Schritt 3: Einrichten der Nginx-Proxy-Konfiguration
Erstellen Sie benutzerdefinierte Konfigurationsdateien
Für mehr Flexibilität und Sicherheit verwenden Sie Snippet-Dateien zum Speichern spezifischer Konfigurationen. Erstellen Sie die folgenden Dateien:
- Sicherheitsheader:
Definieren Sie Sicherheitsheader, um den Schutz zu verbessern:sudo nano /etc/nginx/snippets/security-headers.confadd_header X-Frame-Optionen "SAMEORIGIN"; add_header X-Content-Type-Optionen "nosniff"; add_header X-XSS-Schutz "1; Modus=Block"; - Proxy-Einstellungen:
Optimieren Sie lange Streams und verhindern Sie langsame Antworten:sudo nano /etc/nginx/snippets/proxy.confProxy_Verbindungs-Timeout 60 s; Proxy_Sende-Timeout 60 s; Proxy_Lese-Timeout 60 s; - Ratenbegrenzungen:
Reduzieren Sie übermäßige Anfragen:sudo nano /etc/nginx/snippets/rate-limit.conflimit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
Snippets in die Hauptkonfiguration einschließen
Bearbeiten Sie die Hauptkonfiguration von Nginx:
sudo nano /etc/nginx/nginx.conf Fügen Sie unter dem http Block:
include /etc/nginx/snippets/*.conf; Starten Sie Nginx neu, um die Änderungen zu übernehmen:
sudo systemctl nginx neu laden Schritt 4: Einrichten eines Reverse-Proxys für einen Backend-Dienst
Erstellen eines virtuellen Hosts
Erstellen Sie eine Konfigurationsdatei für Ihren Backend-Dienst:
sudo nano /etc/nginx/sites-available/jellyfin Beispielkonfiguration für einen Jellyfin-Medienserver:
Server { listen 80; Servername jelly.yourdomain.com; Standort / { Proxy-Passwort http://10.10.0.112:8096; include /etc/nginx/snippets/proxy.conf; } } Aktivieren Sie die Site, indem Sie einen symbolischen Link erstellen:
sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/ Testen und neu laden von Nginx:
sudo nginx -t sudo systemctl nginx neu laden Schritt 5: Sichern Ihrer Domain mit Let’s Encrypt TLS
Um Ihre Domain zu sichern, verwenden Sie Let's Encrypt, um kostenlose Zertifikate auszustellen:
sudo certbot --nginx -d jelly.yourdomain.com Certbot konfiguriert SSL automatisch in Ihrer Nginx-Site-Datei. Um sicherzustellen, dass Zertifikate automatisch erneuert werden, überprüfen Sie, ob der systemd-Timer aktiv ist:
sudo systemctl list-timers | grep certbot Schritt 6: Integration von Cloudflare für zusätzliche Sicherheit und ISP-Port-Bypass
Cloudflared installieren
Cloudflared erstellt einen sicheren Tunnel, um den Datenverkehr durch Cloudflare zu leiten und dabei die ISP-Beschränkungen für die Ports 80 und 443 zu umgehen:
- Laden Sie die
.debPaket von der GitHub-Seite von Cloudflare. - Installieren Sie das Paket:
sudo dpkg -i cloudflared-version.deb
Konfigurieren eines Tunnels
Authentifizieren Sie sich mit Ihrem Cloudflare-Konto:
Cloudflare-Tunnel-Anmeldung Erstellen Sie einen neuen Tunnel:
Cloudflared-Tunnel erstellen my-tunnel Bearbeiten Sie die Cloudflare-Konfigurationsdatei:
sudo nano /etc/cloudflared/config.yml Beispielkonfiguration:
Tunnel: my-tunnel Anmeldeinformationen-Datei: /home/user/.cloudflared/my-tunnel.json Eingang: - Hostname: jelly.yourdomain.com Dienst: http://localhost:8096 - Dienst: http_status:404 Starten und aktivieren Sie den Tunneldienst:
sudo systemctl cloudflared aktivieren sudo systemctl cloudflared starten Die wichtigsten Erkenntnisse
- Nginx Reverse Proxy: Unverzichtbar für die sichere Weiterleitung des Datenverkehrs und die Optimierung von Backend-Diensten.
- TLS-Verschlüsselung: Verwenden Sie Let's Encrypt, um Ihre Domänen mit kostenlosen SSL-Zertifikaten zu sichern.
- Firewall-Regeln: Öffnen Sie die erforderlichen Ports für HTTP (80), HTTPS (443) und SSH (22).
- Sicherheitsoptimierung: Implementieren Sie Header und Ratenbegrenzungen, um Angriffe zu verhindern.
- Cloudflare-Integration: Verwenden Sie Cloudflared-Tunnel für sicheres, ISP-freundliches Hosting.
- Automatisierung: Systemd-Timer stellen sicher, dass SSL-Zertifikate automatisch erneuert werden.
Abschluss
Die Einrichtung eines sicheren Nginx-Reverse-Proxys erfordert Liebe zum Detail und sorgfältige Konfiguration, doch der Aufwand lohnt sich. Egal, ob Sie Medienserver wie Jellyfin hosten oder Unternehmensanwendungen verwalten – dieser Leitfaden vermittelt Ihnen die Tools und das Wissen für den Aufbau einer hochsicheren und effizienten Umgebung. Mit Funktionen wie TLS, Cloudflare-Tunneln und erweiterten Optimierungen ist Ihre Infrastruktur bereit für moderne Anforderungen.
Quelle: „Hören Sie auf, Ihre Apps preiszugeben! Erstellen Sie einen sicheren Nginx-Reverse-Proxy!“ – KeepItTechie, YouTube, 19. August 2025 – https://www.youtube.com/watch?v=MzbhS2S7H_g
Verwendung: Eingebettet als Referenz. Kurze Zitate für Kommentare/Rezensionen.
Verwandte Blogbeiträge
- Beherrschen von Nginx-Konfigurationen für optimale Webserver-Leistung
- Beherrschung der NGINX-Konfiguration: Wie Serverion den Erfolg des B2B-Webhostings freischaltet
- NGINX Config Rewind: Serverion lässt die verlorene Kunst der Proxy-Cache-Optimierung wieder aufleben
- Die vergessene NGINX-Konfigurationsgrenze: Serverions Eintauchen in FastCGI Microcaching