Nginx auf einem Linux‑Server installieren

Nginx ist ein moderner, ressourcenschonender Webserver und Reverse‑Proxy, der speziell dafür entwickelt wurde, viele gleichzeitige Verbindungen effizient zu verarbeiten. Er wird häufig eingesetzt, um statische Inhalte schnell auszuliefern, als vorgeschalteter Proxy vor Anwendungsservern zu dienen oder mehrere Dienste über eine IP bereitzustellen.

Auf dieser Seite lernst du Schritt für Schritt, wie du Nginx auf einem Linux‑Server installierst, den Dienst verwaltest, grundlegende Server‑Blöcke einrichtest, Logs findest und Nginx anschließend mit Let’s Encrypt kostenlos per TLS absicherst. Der Fokus liegt auf Debian‑/Ubuntu‑Systemen, viele Konzepte gelten aber ähnlich auf anderen Distributionen.

Was ist Nginx?
Kurzbeschreibung
Nginx („Engine‑X“) ist ein Open‑Source‑Webserver mit Event‑basierter Architektur. Statt für jede Verbindung einen eigenen Prozess zu verwenden, arbeitet Nginx mit wenigen Worker‑Prozessen und einem asynchronen Event‑Loop. Dadurch können viele gleichzeitige Verbindungen mit relativ wenig RAM und CPU‑Last verarbeitet werden.
Typische Rollen
Häufig agiert Nginx als Webserver für statische Inhalte, als Reverse‑Proxy vor PHP‑FPM, Node.js oder anderen Backends, als TLS‑Terminator oder als Load‑Balancer. Dadurch lässt sich Nginx sehr flexibel einsetzen – von kleinen Seiten auf einem Root‑Server bis zu verteilten Infrastrukturen mit vielen Knoten.
Vorbereitung auf Debian / Ubuntu
System aktualisieren
Vor der Installation solltest du dein System aktualisieren, damit Paketlisten und Bibliotheken auf dem neuesten Stand sind. Unter Debian/Ubuntu erledigst du das typischerweise mit:

sudo apt update
sudo apt upgrade

So stellst du sicher, dass du eine aktuelle Nginx‑Version und kompatible Abhängigkeiten erhältst.
Root‑Rechte
Die Installation von Nginx und das Ändern von Systemkonfigurationen erfordern Root‑Rechte. Entweder arbeitest du direkt als root oder nutzt sudo, wenn dein Benutzer in der sudoers‑Datei hinterlegt ist.
Nginx installieren und verwalten
Installation
Auf Debian/Ubuntu installierst du Nginx über die Standard‑Paketquellen:

sudo apt install nginx

Der Paketmanager installiert den Webserver sowie Abhängigkeiten, legt Konfigurationsverzeichnisse in /etc/nginx an und richtet Systemd‑Units ein. Auf anderen Distributionen verwendest du die jeweiligen Paketmanager wie dnf, yum oder zypper.
Dienststeuerung
Über systemd verwaltest du den Dienst mit:

sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
sudo systemctl enable nginx
sudo systemctl status nginx

Für Konfigurationsänderungen ist reload empfehlenswert, da laufende Verbindungen sauber weiter bedient werden, während neue Worker mit der aktualisierten Konfiguration starten.
Funktionstest
Nach der Installation rufst du im Browser http://<deine-server-ip> oder die Domain auf, die auf den Server zeigt. Erscheint die Nginx‑Standardseite, ist der Webserver korrekt aktiv und erreicht Port 80.
Konfiguration, Verzeichnisse und Logs
Konfig‑Struktur
Die globale Nginx‑Konfiguration liegt in /etc/nginx/nginx.conf. Von dort aus werden weitere Dateien eingebunden, zum Beispiel in /etc/nginx/conf.d sowie die Server‑Blöcke in sites-available und sites-enabled. Diese Aufteilung erleichtert es, einzelne Projekte zu aktivieren oder zu deaktivieren.
Logfiles
Logs findest du typischerweise in /var/log/nginx. Die wichtigsten Dateien sind access.log (alle Anfragen) und error.log (Fehler und Warnungen). Für einzelne Server‑Blöcke kannst du eigene Logfiles konfigurieren, um den Traffic bestimmter Projekte getrennt auszuwerten.
Webroot
Der Ordner, aus dem Nginx Dateien ausliefert, wird in der Server‑Block‑Konfiguration über die Direktive root gesetzt. Standardmäßig kann das z. B. /var/www/html sein; für eigene Projekte lohnt sich ein eigener Pfad wie /var/www/deine-domain/html mit passenden Rechten für deinen Benutzer.
TLS mit Let’s Encrypt
Voraussetzungen
Um Nginx mit einem TLS‑Zertifikat von Let’s Encrypt abzusichern, benötigst du:
– Einen Domainnamen, der per DNS auf deinen Server zeigt
– Einen laufenden Nginx‑Server auf Port 80 (für die Validierung)
– Port 80 und 443 in der Firewall freigegeben
– Ein Tool wie Certbot, das mit Let’s Encrypt kommuniziert.
Certbot installieren
Unter aktuellen Ubuntu/Debian‑Systemen kannst du Certbot zusammen mit dem Nginx‑Plugin installieren, zum Beispiel:

sudo apt install certbot python3-certbot-nginx

Certbot übernimmt dann sowohl das Anfordern des Zertifikats als auch – wenn gewünscht – das automatische Anpassen der Nginx‑Konfiguration.
Zertifikat holen
Danach kannst du ein Zertifikat für deine Domain anfordern, z. B.:

sudo certbot --nginx -d deine-domain.de -d www.deine-domain.de

Certbot fragt dich nach einer Kontakt‑E‑Mail, akzeptierter AGB und ob HTTP gleich dauerhaft auf HTTPS umgeleitet werden soll. Bei Erfolg passt das Tool deine Nginx‑Config an und trägt Zertifikatspfad und Schlüssel unter /etc/letsencrypt/live/... ein.
Automatische Erneuerung
Let’s‑Encrypt‑Zertifikate sind in der Regel 90 Tage gültig, können aber automatisch verlängert werden. Certbot legt hierzu einen Cronjob oder systemd‑Timer an. Du kannst den Vorgang testen mit:

sudo certbot renew --dry-run

Wenn dabei keine Fehler auftreten, laufen die Verlängerungen künftig automatisch im Hintergrund. Es lohnt sich, die bei Certbot angegebene E‑Mail‑Adresse zu überwachen, um bei Problemen benachrichtigt zu werden.