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.
sudo apt updatesudo apt upgrade
So stellst du sicher, dass du eine aktuelle Nginx‑Version und kompatible Abhängigkeiten erhältst.
sudo, wenn dein Benutzer in der sudoers‑Datei hinterlegt ist.
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.
sudo systemctl start nginxsudo systemctl stop nginxsudo systemctl restart nginxsudo systemctl reload nginxsudo systemctl enable nginxsudo 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.
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.
/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.
/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.
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.
– 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.
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.
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.
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.
Eigene Server‑Blöcke und weitere Schritte
Für mehrere Projekte legst du eigene Server‑Blöcke an – mit individuellen Domains, Webroots und Logfiles. Dafür erstellst du Konfigurationsdateien in /etc/nginx/sites-available, verlinkst sie nach sites-enabled, prüfst alles mit sudo nginx -t und lädst die Konfiguration mit sudo systemctl reload nginx neu.
Aufbauend auf dieser Basis kannst du Nginx später als Reverse‑Proxy vor Applikationsservern nutzen, Lastverteilung konfigurieren oder Caching‑Mechanismen hinzufügen. Auch Härten der TLS‑Konfiguration (z. B. HSTS, moderne Cipher‑Suites) ist ein sinnvoller nächster Schritt, sobald dein Setup stabil läuft.