Nginx-Administration auf einem VPS

9 Min. Lesezeit·Matthieu·nginxweb-serverreverse-proxyvps|

Eine strukturierte Übersicht der Nginx-Administration für VPS-Betreiber. Erklärt, was Nginx leistet, wann Sie es einsetzen, und verlinkt alle Tutorials für den Produktionsbetrieb.

Nginx betreibt einen großen Teil des Webs. Es liefert statische Dateien aus, leitet Anfragen an Backend-Anwendungen weiter, terminiert TLS und verteilt Last auf mehrere Server. Alles aus einem einzigen Prozess mit geringem Speicherverbrauch. Diese Anleitung bildet die Nginx-Administration auf einem VPS ab, von der Installation bis zum Monitoring in der Produktion.

Diese Seite ist eine Übersichtskarte. Sie erklärt, was Nginx leistet, wann welche Funktion relevant ist, und verlinkt auf spezialisierte Tutorials zu jedem Thema. Ob Sie Ihr erstes Nebenprojekt deployen oder einen KI-Inferenz-Endpunkt hinter einem Reverse Proxy betreiben, starten Sie hier und folgen Sie dem Pfad, der zu Ihrem Anwendungsfall passt.

Was Nginx leistet

Nginx (ausgesprochen "Engine-X") ist ein ereignisgesteuerter Webserver und Reverse Proxy. Er wurde 2004 entwickelt, um das C10K-Problem zu lösen: 10.000 gleichzeitige Verbindungen auf einem einzelnen Server zu bewältigen. Anders als Thread-per-Connection-Server wie Apaches Prefork-Modell nutzt Nginx eine asynchrone Ereignisschleife. Ein einziger Worker-Prozess bearbeitet Tausende von Verbindungen, ohne für jede einen neuen Thread zu erzeugen.

Auf einem VPS bedeutet das:

  • Geringer Speicherverbrauch. Ein typischer Nginx-Worker-Prozess benötigt 2-10 MB RAM. Apache-Prefork-Worker verbrauchen jeweils 10-40 MB.
  • Hohe Nebenläufigkeit. Ein einzelner Worker kann Tausende gleichzeitiger Verbindungen bearbeiten. Der limitierende Faktor ist in der Regel das Betriebssystem, nicht Nginx.
  • Vorhersagbare Leistung unter Last. Da Nginx keine neuen Prozesse pro Anfrage erzeugt, bleibt der Speicherverbrauch stabil, wenn der Traffic steigt.

Die aktuelle stabile Version ist 1.28.x (1.28.2 Stand März 2026). Der Mainline-Branch (1.29.x) erhält neue Features zuerst. Der Stable-Branch erhält nur kritische Bugfixes. Für einen Produktions-VPS ist der Stable-Branch die richtige Wahl.

Alle Tutorials in dieser Reihe beziehen sich auf Nginx, installiert aus den offiziellen Repositories auf Debian 12 oder Ubuntu 24.04. Beide werden aktiv gepflegt und sind auf Produktionsservern weit verbreitet. Die Standard-Repositories der Distributionen liefern oft ältere Nginx-Versionen. Das offizielle Repository gibt Ihnen die neueste stabile Version mit korrekten Signaturschlüsseln.

Zentrale Einsatzbereiche

Nginx erfüllt vier Rollen auf einem VPS. Die meisten Produktionssetups nutzen zwei oder mehr gleichzeitig.

Statischer Dateiserver

Nginx liefert HTML, CSS, JavaScript, Bilder und Schriftarten direkt von der Festplatte. Der Systemaufruf sendfile verschiebt Daten von der Festplatte zum Netzwerk-Socket, ohne sie durch den Userspace zu kopieren. Das vermeidet den Overhead, Dateiinhalte in den Anwendungsspeicher zu lesen und wieder herauszuschreiben.

In Kombination mit gzip- oder brotli-Komprimierung und Cache-Headern (expires, Cache-Control) liefert Nginx statische Assets schneller als jeder Application Server. Ein Node.js- oder Python-Prozess, der statische Dateien ausliefert, verschwendet CPU-Zyklen für Arbeit, die Nginx auf Kernel-Ebene erledigt.

Für statische Websites, Single-Page-Apps oder Full-Stack-Frontends ist Nginx das richtige Werkzeug. Selbst bei dynamischen Backends entlastet die Auslagerung statischer Assets an Nginx Ihre Anwendung für Anfragen, die Logik erfordern.

Reverse Proxy

Ein Reverse Proxy sitzt zwischen Clients und Ihrer Backend-Anwendung. Nginx empfängt die HTTP-Anfrage, leitet sie an einen Backend-Prozess weiter (Node.js, Python, Go, Ruby oder jeder HTTP-Dienst) und gibt die Antwort an den Client zurück.

Warum das Backend nicht direkt exponieren? Mehrere Gründe:

  • TLS-Terminierung an einer einzigen Stelle. Sie konfigurieren Zertifikate einmal in Nginx statt in jeder Anwendung.
  • Header-Weiterleitung übergibt die echte Client-IP über X-Real-IP und X-Forwarded-For an Ihr Backend. Ohne das sieht Ihre Anwendung nur 127.0.0.1.
  • Pufferung absorbiert langsame Client-Verbindungen. Nginx liest die vollständige Antwort von Ihrem schnellen Backend, gibt die Backend-Verbindung frei und sendet die Antwort in eigenem Tempo an den langsamen Client. Ihr Backend bearbeitet die nächste Anfrage, statt zu warten.
  • WebSocket-Unterstützung funktioniert über Nginx mit den richtigen Upgrade- und Connection-Headern.

So stellen Sie auch ein Webinterface vor selbst gehostete KI-Tools. Eine Ollama-Instanz auf localhost:11434 bleibt vom öffentlichen Internet abgeschirmt, während Nginx Authentifizierung und HTTPS auf der Frontend-Seite übernimmt. Das Tutorial Nginx als Reverse Proxy konfigurieren enthält eine vollständige Ollama-Konfiguration mit Timeout-Anpassung für lang laufende Inferenz-Anfragen.

TLS-Terminierung

Nginx übernimmt den TLS-Handshake und die Entschlüsselung, sodass Backend-Anwendungen reines HTTP auf localhost empfangen. Das zentralisiert die Zertifikatsverwaltung und entlastet Ihren Anwendungscode von CPU-intensiven kryptografischen Operationen.

Der TLS-Handshake beinhaltet asymmetrische Kryptografie (RSA- oder ECDSA-Schlüsselaustausch), die um Größenordnungen teurer ist als die symmetrische Verschlüsselung für den eigentlichen Datentransfer. Indem Nginx das übernimmt, bleiben Ihre Backend-Prozesse auf die Geschäftslogik fokussiert.

Mit Let's Encrypt und Certbot erhalten Sie kostenlose, automatisch erneuerte Zertifikate. Die Nginx-Direktiven ssl_certificate und ssl_certificate_key verweisen auf die Zertifikatsdateien. Ein systemd-Timer führt certbot renew automatisch aus. Das Tutorial Let's Encrypt SSL/TLS für Nginx einrichten auf Debian 12 und Ubuntu 24.04 behandelt die vollständige Einrichtung einschließlich OCSP-Stapling und HTTP-zu-HTTPS-Weiterleitung.

Für europäische Deployments, bei denen Datensouveränität wichtig ist, bedeutet die TLS-Terminierung auf Ihrem eigenen VPS, dass verschlüsselter Datenverkehr nur auf Infrastruktur entschlüsselt wird, die Sie kontrollieren. Kein CDN oder Load Balancer eines Drittanbieters sieht Ihren Klartext-Traffic.

Load Balancer

Wenn ein einzelnes Backend nicht mehr ausreicht, verteilt Nginx Anfragen auf mehrere Upstream-Server. Drei eingebaute Algorithmen stehen zur Verfügung:

  • Round-Robin (Standard): Anfragen gehen der Reihe nach an jedes Backend
  • Least Connections: Anfragen gehen an das Backend mit den wenigsten aktiven Verbindungen
  • IP-Hash: Anfragen von derselben Client-IP gehen immer an dasselbe Backend (nützlich für Session-Affinität)

Health Checks entfernen nicht reagierende Backends automatisch aus dem Pool. Wenn ein Backend Fehler zurückgibt oder nicht antwortet, stoppt Nginx den Datenverkehr dorthin, bis es sich erholt.

Für die meisten VPS-Setups wird Load Balancing relevant, wenn Sie horizontal über mehrere Anwendungsinstanzen skalieren oder Blue-Green-Deployments mit unterbrechungsfreien Releases durchführen.

Voraussetzungen

Bevor Sie ein Tutorial dieser Reihe beginnen, benötigen Sie:

  • Einen VPS mit Debian 12 oder Ubuntu 24.04 und Root- oder Sudo-Zugang. Virtua Cloud VPS-Angebote funktionieren direkt für alles, was hier behandelt wird.
  • SSH-Zugang mit schlüsselbasierter Authentifizierung. Passwort-Authentifizierung sollte deaktiviert sein. Brute-Force-Bots beginnen innerhalb von Minuten nach der Inbetriebnahme eines Servers mit SSH-Angriffen.
  • Einen Domainnamen mit einem A-Record, der auf die IP-Adresse Ihres Servers zeigt. Erforderlich für TLS-Zertifikate. Optional für das Installations-Tutorial.
  • Grundlegende Vertrautheit mit der Linux-Kommandozeile: Verzeichnisse navigieren, Dateien mit vim oder nano bearbeiten, Befehle mit sudo ausführen.

Wenn Sie neu im Umgang mit VPS sind, konfigurieren Sie zuerst SSH-Schlüssel und eine Firewall, bevor Sie Nginx anfassen. Ein Server, der ohne diese Grundlagen dem Internet ausgesetzt ist, ist ein Sicherheitsrisiko.

Die Tutorial-Reihe

Jeder Artikel unten konzentriert sich auf ein Thema. Sie bauen der Reihe nach aufeinander auf, aber Sie können zu jedem Artikel springen, wenn Sie die Voraussetzungen bereits erfüllen.

1. Nginx installieren

Installieren Sie Nginx aus den offiziellen Repositories. Behandelt Debian 12 und Ubuntu 24.04 mit GPG-Schlüsselverifikation, apt-Installation, systemd-Verwaltung (start, stop, reload, status) und Firewall-Regeln für ufw und nftables. Enthält Überprüfungsschritte mit curl und ss, um sicherzustellen, dass Nginx auf den richtigen Ports lauscht.

Nginx auf Debian 12 und Ubuntu 24.04 aus dem offiziellen Repository installieren

2. Die Konfigurationsdateistruktur verstehen

Bevor Sie eine Konfiguration bearbeiten, verstehen Sie, wie Nginx sie organisiert. Der Hauptkontext und die Blöcke events, http, server und location bilden eine Hierarchie. Direktiven, die in einem übergeordneten Kontext gesetzt werden, werden von untergeordneten Kontexten geerbt, sofern sie nicht explizit überschrieben werden. Dieser Artikel behandelt alle wichtigen Kontexte (einschließlich stream und upstream), die include-Direktive für modulare Konfigurationen und das sites-available/sites-enabled-Muster auf Debian und Ubuntu.

Nginx-Konfigurationsdatei: Aufbau und Struktur erklärt

3. Server-Blöcke einrichten

Hosten Sie mehrere Domains auf einem einzigen VPS. Server-Blöcke (Nginx-Äquivalent zu Apache Virtual Hosts) ermöglichen den Betrieb separater Websites mit unabhängigen Konfigurationen, Zugriffslogs, Fehlerlogs und Document Roots. Behandelt Verzeichnisstruktur, Erstellung von Server-Block-Dateien, Aktivierung und Deaktivierung von Sites mit Symlinks, die default_server-Direktive, die Zuordnungsreihenfolge von server_name und Per-vHost-Logging.

Nginx Server Blocks: Mehrere Domains auf einem VPS betreiben

4. SSL/TLS mit Let's Encrypt konfigurieren

Fügen Sie Ihren Websites HTTPS hinzu mit Certbot und Let's Encrypt. Behandelt DNS-Voraussetzungen, Snap-basierte Certbot-Installation (die derzeit empfohlene Methode), Zertifikatsausstellung mit dem Nginx-Plugin, automatische Erneuerung über systemd-Timer, HTTP-zu-HTTPS-Weiterleitung und OCSP-Stapling. Jeder Schritt enthält einen Überprüfungsbefehl.

Let's Encrypt SSL/TLS für Nginx einrichten auf Debian 12 und Ubuntu 24.04

5. Einen Reverse Proxy einrichten

Schalten Sie Nginx vor Ihre Backend-Anwendungen. Behandelt proxy_pass-Syntax, Header-Weiterleitung (X-Real-IP, X-Forwarded-For, X-Forwarded-Proto), WebSocket-Proxying mit Upgrade-Headern, Pufferungssteuerung (proxy_buffering, proxy_buffer_size) und Timeout-Konfiguration (proxy_connect_timeout, proxy_read_timeout). Enthält ein funktionierendes Beispiel für das Proxying zu einer lokalen Ollama-Instanz mit erweiterten Timeouts für Inferenz-Anfragen, die 30 Sekunden oder länger dauern können.

Nginx als Reverse Proxy konfigurieren

6. Sicherheit härten

Sichern Sie Nginx über die Standardeinstellungen hinaus ab. Jede Direktive ist mit der spezifischen Bedrohung verknüpft, die sie abwehrt. Behandelt Sicherheits-Header (CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy), das Verbergen von Server-Tokens, die Deaktivierung ungenutzter HTTP-Methoden, IP-basierte Zugriffsbeschränkungen, die TLS-Cipher-Suite-Auswahl nach dem Mozilla-Modern-Profil und HSTS mit Preload-Überlegungen. Überprüfung über securityheaders.com und SSL Labs.

Nginx-Sicherheitshärtung unter Ubuntu und Debian

7. Performance optimieren

Optimieren Sie Nginx für den Produktionsbetrieb. Behandelt worker_processes auto und worker_connections-Dimensionierung, epoll und multi_accept, Keepalive-Tuning, Gzip-Konfiguration (Kompressionsstufen, MIME-Typen, Mindestgröße), Brotli-Modul-Setup, statisches Datei-Caching mit expires und Cache-Control, open_file_cache zur Reduzierung von Disk-I/O, Proxy-Buffer-Dimensionierung und HTTP/2-Aktivierung. Enthält eine Benchmark-Methodik mit wrk, damit Sie die Auswirkung jeder Änderung messen können.

Für Websites mit hohem Traffic bietet ein High-CPU-VPS mehr Spielraum für TLS-Handshakes und Komprimierung.

Nginx Performance-Tuning auf einem VPS

8. Rate Limiting und DDoS-Schutz

Schützen Sie Ihre Endpunkte vor Missbrauch und volumetrischen Angriffen. Behandelt limit_req_zone und limit_req mit den Parametern burst und nodelay, limit_conn für Verbindungsdrosselung, benutzerdefinierte 429-Fehlerseiten, den dry_run-Modus zum sicheren Testen ohne Blockierung echten Traffics und fail2ban-Integration mit einem funktionierenden Filter und einer Jail-Konfiguration zum Sperren von Wiederholungstätern auf Firewall-Ebene.

Nginx Rate Limiting und DDoS-Schutz

9. Logging und Monitoring

Richten Sie produktionsreife Observability ein. Behandelt benutzerdefinierte log_format-Definitionen einschließlich eines strukturierten JSON-Formats mit escape=json (bereit für Log-Shipper wie Filebeat oder Vector), bedingtes Logging mit map zum Filtern von Health Checks und statischen Assets, Log-Rotation mit einer logrotate-Konfiguration, Echtzeitanalyse mit GoAccess und Prometheus-Metriken über das stub_status-Modul und prometheus-nginxlog-exporter.

10. Nginx-Cheatsheet

Kurzreferenz für den täglichen Betrieb. systemd-Befehle, gängige Konfigurationsausschnitte (Weiterleitung, proxy_pass, SSL-Block, Rate Limit, Gzip), Log-Dateispeicherorte, Debugging mit nginx -T (vollständige zusammengeführte Konfiguration ausgeben) und curl -I (Antwort-Header inspizieren) sowie häufige Fehlercodes (502, 504, 413, 403) mit ihren Nginx-spezifischen Ursachen und Lösungen.

Nginx-Spickzettel: Befehle, Konfigurationsbeispiele und Fehlerbehebung

Wann Sie es anderen überlassen sollten

Nginx in der Produktion zu verwalten bedeutet, Sicherheitspatches, Zertifikatserneuerungen, Konfigurationsdrift und Log-Rotation im Blick zu behalten. Wenn Sie sich lieber auf Ihren Anwendungscode konzentrieren und die Infrastruktur jemand anderem überlassen möchten, nimmt Ihnen Managed-Server-Hosting diese Aufgabe ab. Sie behalten die volle Nginx-Flexibilität ohne den Wartungsaufwand.

Wo Sie anfangen sollten

Sie deployen Ihre erste Website? Starten Sie mit dem Installations-Tutorial (Nginx auf Debian 12 und Ubuntu 24.04 aus dem offiziellen Repository installieren) und arbeiten Sie die Reihe der Reihe nach durch.

Nginx läuft bereits? Springen Sie direkt zum benötigten Thema. Der Artikel zur Konfigurationsstruktur (Nginx-Konfigurationsdatei: Aufbau und Struktur erklärt) schließt Lücken, wenn Sie bisher Konfigurationen kopiert haben, ohne die Hierarchie zu verstehen.

Sie betreiben KI-Workloads? Gehen Sie direkt zum Reverse-Proxy-Tutorial (Nginx als Reverse Proxy konfigurieren) für das Ollama-Reverse-Proxy-Setup. Dann sichern Sie alles mit dem Sicherheitshärtungs-Guide (Nginx-Sicherheitshärtung unter Ubuntu und Debian) und dem Rate-Limiting-Tutorial (Nginx Rate Limiting und DDoS-Schutz) ab.

Sie brauchen nur einen schnellen Befehl? Das Cheatsheet (Nginx-Spickzettel: Befehle, Konfigurationsbeispiele und Fehlerbehebung) hat alles auf einer Seite.