Nginx auf Debian 12 und Ubuntu 24.04 aus dem offiziellen Repository installieren
Installieren Sie Nginx aus dem offiziellen nginx.org-Repository auf Debian 12 oder Ubuntu 24.04. Umfasst Signaturschluessel, apt-Pinning, Firewall-Regeln fuer UFW und nftables, systemd-Verwaltung und Verifizierung nach jedem Schritt.
Nginx auf Debian 12 und Ubuntu 24.04 aus dem offiziellen Repository installieren
Dieses Tutorial installiert Nginx aus dem offiziellen nginx.org-Repository auf einem Debian 12- oder Ubuntu 24.04-VPS. Sie erhalten die neueste Version (1.28.2 stable oder 1.29.6 mainline) anstelle des veralteten Pakets Ihrer Distribution. Jeder Schritt beinhaltet eine Verifizierung, damit Sie genau wissen, was passiert ist.
Fuer den Kontext, wo Nginx in Ihren Server-Stack passt, lesen Sie Nginx Administration on a VPS.
Voraussetzungen
Sie benoetigen:
- Einen VPS mit Debian 12 (Bookworm) oder Ubuntu 24.04 (Noble Numbat)
- Einen Nicht-Root-Benutzer mit
sudo-Rechten - SSH-Zugang zum Server
Alle Befehle in diesem Tutorial werden als sudo-Benutzer ausgefuehrt. Nicht als root.
Soll ich Nginx stable oder mainline installieren?
Nginx pflegt zwei Branches. Stable (gerade Versionsnummer, aktuell 1.28.x) erhaelt nur kritische Fehlerbehebungen. Mainline (ungerade Versionsnummer, aktuell 1.29.x) erhaelt alle neuen Features, Bugfixes und Sicherheitspatches. Das Nginx-Team empfiehlt mainline fuer den Produktionsbetrieb. Stable existiert fuer Nutzer, die minimale Aenderungen zwischen Updates bevorzugen.
| Stable | Mainline | |
|---|---|---|
| Aktuelle Version | 1.28.2 | 1.29.6 |
| Update-Haeufigkeit | Nur kritische Fixes | Alle 4-6 Wochen |
| Neue Features | Nein | Ja |
| Empfohlen von nginx.org | Fuer konservative Setups | Fuer den Produktionsbetrieb |
Dieses Tutorial verwendet standardmaessig stable. Um stattdessen mainline zu installieren, tauschen Sie die Repository-URL an den markierten Stellen aus.
Warum das offizielle Repository statt des Distributions-Pakets verwenden?
Die Standard-apt-Repositories von Debian 12 und Ubuntu 24.04 liefern Nginx 1.22.1 bzw. 1.24.0. Diese Versionen liegen Monate bis Jahre hinter den offiziellen Releases zurueck. Das nginx.org-Repository liefert Ihnen den neuesten stable- oder mainline-Build, gepflegt vom Nginx-Team.
| Quelle | Debian 12 Version | Ubuntu 24.04 Version | Gepflegt von |
|---|---|---|---|
| Distributions-Repository | 1.22.1 | 1.24.0 | OS-Maintainer |
| nginx.org stable | 1.28.2 | 1.28.2 | Nginx-Team |
| nginx.org mainline | 1.29.6 | 1.29.6 | Nginx-Team |
Wie installiere ich Nginx auf Debian 12 aus dem offiziellen Repository?
Installieren Sie die Voraussetzungen, fuegen Sie den nginx.org-Signaturschluessel hinzu, konfigurieren Sie die apt-Quelle, pinnen Sie das Repository und installieren Sie. Das dauert etwa zwei Minuten.
Schritt 1: Voraussetzungen installieren
sudo apt update
sudo apt install -y curl gnupg2 ca-certificates lsb-release debian-archive-keyring
Schritt 2: Den nginx.org-Signaturschluessel importieren
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Ueberpruefen Sie den Fingerabdruck des Schluessels:
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
Genau hinsehen: Die Ausgabe listet mehrere Signaturschluessel auf. Suchen Sie nach diesem Fingerabdruck:
573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
Wenn keiner der aufgelisteten Fingerabdruecke uebereinstimmt, loeschen Sie die Datei und laden Sie sie erneut herunter. Ein nicht uebereinstimmender Schluessel bedeutet, dass der Download abgefangen oder beschaedigt wurde.
Schritt 3: Das apt-Repository hinzufuegen
Fuer stable:
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://nginx.org/packages/debian $(lsb_release -cs) nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Fuer mainline ersetzen Sie packages durch packages/mainline:
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://nginx.org/packages/mainline/debian $(lsb_release -cs) nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Schritt 4: Das offizielle Repository pinnen
Dies stellt sicher, dass apt das nginx.org-Paket gegenueber der Distributions-Version bevorzugt:
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| sudo tee /etc/apt/preferences.d/99nginx
Ohne Pinning koennte ein zukuenftiges apt upgrade das offizielle Paket durch die aeltere Distributions-Version ersetzen.
Schritt 5: Nginx installieren
sudo apt update
sudo apt install -y nginx
Schritt 6: Starten und Installation ueberpruefen
nginx -v
Erwartete Ausgabe fuer stable:
nginx version: nginx/1.28.2
Das nginx.org-Paket startet nach der Installation nicht automatisch. Starten Sie es jetzt:
sudo systemctl start nginx
Pruefen Sie, ob der Dienst laeuft:
sudo systemctl status nginx
Genau hinsehen: Suchen Sie nach Active: active (running) in der Ausgabe.
Ueberpruefen Sie, ob Nginx auf Port 80 lauscht:
ss -tlnp | grep :80
Erwartete Ausgabe:
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=...,fd=...))
Testen Sie die Willkommensseite:
curl -I http://localhost
Genau hinsehen: Die Antwort sollte HTTP/1.1 200 OK und Server: nginx/1.28.2 enthalten.
Wie installiere ich Nginx auf Ubuntu 24.04 aus dem offiziellen Repository?
Der Ablauf ist nahezu identisch mit Debian. Die einzigen Unterschiede sind das Voraussetzungs-Paket und die Repository-URL.
Schritt 1: Voraussetzungen installieren
sudo apt update
sudo apt install -y curl gnupg2 ca-certificates lsb-release ubuntu-keyring
Hinweis: Ubuntu verwendet ubuntu-keyring anstelle von debian-archive-keyring.
Schritt 2: Den nginx.org-Signaturschluessel importieren
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Ueberpruefen Sie den Fingerabdruck (gleicher Schluessel wie bei Debian):
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
Suchen Sie nach 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 unter den aufgelisteten Schluesseln.
Schritt 3: Das apt-Repository hinzufuegen
Fuer stable:
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Fuer mainline:
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://nginx.org/packages/mainline/ubuntu $(lsb_release -cs) nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Schritt 4: Das offizielle Repository pinnen
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| sudo tee /etc/apt/preferences.d/99nginx
Schritt 5: Nginx installieren
sudo apt update
sudo apt install -y nginx
Schritt 6: Starten und Installation ueberpruefen
Starten Sie Nginx (es startet nicht automatisch nach der Installation):
sudo systemctl start nginx
Fuehren Sie die gleichen Verifizierungen wie bei Debian durch:
nginx -v
sudo systemctl status nginx
ss -tlnp | grep :80
curl -I http://localhost
Sie sollten nginx/1.28.2 (stable) oder nginx/1.29.6 (mainline) sowohl in nginx -v als auch in den curl-Antwort-Headern sehen.
Wie verwalte ich Nginx mit systemd?
Nginx liefert eine systemd-Unit-Datei mit. Dies sind die Befehle, die Sie taeglich verwenden werden.
| Befehl | Was er bewirkt |
|---|---|
sudo systemctl start nginx |
Nginx starten |
sudo systemctl stop nginx |
Nginx stoppen |
sudo systemctl restart nginx |
Stoppen und starten (trennt Verbindungen) |
sudo systemctl reload nginx |
Konfiguration neu laden ohne Verbindungen zu trennen |
sudo systemctl enable nginx |
Beim Booten starten |
sudo systemctl disable nginx |
Nicht beim Booten starten |
sudo systemctl status nginx |
Laufstatus und aktuelle Logs anzeigen |
Reload vs Restart: Verwenden Sie reload nach Konfigurationsaenderungen. Es wendet die neue Konfiguration an, ohne aktive Verbindungen zu trennen. Verwenden Sie restart nur, wenn Sie Einstellungen auf Binaer-Ebene geaendert oder Nginx aktualisiert haben. Reload ist sicher. Restart trennt jede aktive Verbindung.
Aktivieren Sie den automatischen Start von Nginx beim Booten:
sudo systemctl enable nginx
Testen Sie immer Ihre Konfiguration vor dem Neuladen:
sudo nginx -t
Erwartete Ausgabe:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Wenn nginx -t Fehler meldet, beheben Sie diese vor dem Neuladen. Ein fehlgeschlagenes Reload laesst die vorherige Konfiguration aktiv. Ein fehlgeschlagener Restart laesst Nginx gestoppt.
Wie konfiguriere ich UFW-Firewall-Regeln fuer Nginx?
UFW (Uncomplicated Firewall) ist das Standard-Firewall-Frontend unter Ubuntu. Es ist unter Debian verfuegbar, aber nicht standardmaessig installiert. Einige VPS-Images werden ohne UFW ausgeliefert. Wenn ufw nicht gefunden wird, installieren Sie es zuerst:
sudo apt install -y ufw
Das nginx.org-Paket enthaelt keine UFW-Anwendungsprofile (Nginx Full, Nginx HTTP, Nginx HTTPS). Diese Profile werden nur mit dem Distributions-Paket ausgeliefert. Verwenden Sie stattdessen Portnummern.
Erlauben Sie zuerst SSH (damit Sie sich nicht aussperren):
sudo ufw allow OpenSSH
Erlauben Sie HTTP (80) und HTTPS (443):
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Wenn Sie nur HTTPS benoetigen:
sudo ufw allow 443/tcp
Stellen Sie sicher, dass UFW aktiviert ist:
sudo ufw enable
Ueberpruefen Sie die Regeln:
sudo ufw status
Die erwartete Ausgabe enthaelt:
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
Wenn ufw status Status: inactive anzeigt, fuehren Sie zuerst sudo ufw enable aus.
Wie konfiguriere ich nftables-Firewall-Regeln fuer Nginx?
Debian 12 verwendet nftables als Standard-Firewall-Backend. Wenn Sie Firewall-Regeln direkt verwalten (ohne UFW), fuegen Sie die Nginx-Ports zu Ihrer nftables-Konfiguration hinzu.
Bearbeiten Sie Ihre nftables-Konfiguration:
sudo nano /etc/nftables.conf
Fuegen Sie diese Regeln in Ihre input-Chain ein (innerhalb Ihrer inet filter-Tabelle):
tcp dport { 80, 443 } accept
Eine minimale funktionierende Konfiguration sieht so aus:
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
iif lo accept
ct state established,related accept
tcp dport 22 accept
tcp dport { 80, 443 } accept
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
Wenden Sie die Regeln an:
sudo nft -f /etc/nftables.conf
Ueberpruefen Sie:
sudo nft list ruleset
Genau hinsehen: Suchen Sie nach tcp dport { 80, 443 } accept in der Ausgabe. Wenn es fehlt, wurden die Regeln nicht angewandt.
Aktivieren Sie nftables beim Booten:
sudo systemctl enable nftables
Wie ueberpruefe ich, ob Nginx korrekt laeuft?
Nach der Installation und der Firewall-Einrichtung gehen Sie diese Checkliste durch.
Vom Server aus:
nginx -v
sudo systemctl status nginx
ss -tlnp | grep :80
curl -I http://localhost
Von Ihrem lokalen Rechner aus (ersetzen Sie YOUR_SERVER_IP):
curl -I http://YOUR_SERVER_IP
Erwartete Antwort-Header:
HTTP/1.1 200 OK
Server: nginx/1.28.2
Wenn der externe curl-Aufruf ein Timeout ergibt, localhost aber funktioniert, blockiert Ihre Firewall Port 80. Gehen Sie zurueck zum UFW- oder nftables-Abschnitt oben.
Sie koennen auch http://YOUR_SERVER_IP im Browser oeffnen. Sie sollten die Seite "Welcome to nginx!" sehen.
Wichtige Datei- und Verzeichnispfade
| Pfad | Zweck |
|---|---|
/etc/nginx/nginx.conf |
Haupt-Konfigurationsdatei |
/etc/nginx/conf.d/ |
Zusaetzliche Konfigurationsdateien (standardmaessig geladen) |
/var/log/nginx/access.log |
Zugriffsprotokoll |
/var/log/nginx/error.log |
Fehlerprotokoll |
/usr/share/nginx/html/ |
Standard-Dokumentenstamm |
Das offizielle nginx.org-Paket verwendet /etc/nginx/conf.d/ fuer Seitenkonfigurationen. Dies unterscheidet sich vom Distributions-Paket, das sites-available/ und sites-enabled/ verwendet. Beide Ansaetze funktionieren. Das conf.d-Muster ist einfacher.
Um zu erfahren, wie Nginx-Konfigurationsdateien aufgebaut sind, lesen Sie . Um mehrere Domains auf diesem Server zu hosten, lesen Sie .
Copyright 2026 Virtua.Cloud. Alle Rechte vorbehalten. Dieser Inhalt ist ein Originalwerk des Virtua.Cloud-Teams. Vervielfaeltigung, Wiederveroeffentlichung oder Weiterverbreitung ohne schriftliche Genehmigung ist untersagt.
Bereit, es selbst auszuprobieren?
Stellen Sie Ihren eigenen Server in Sekunden bereit. Linux, Windows oder FreeBSD.
VPS-Angebote ansehen