FAQ

Nginx auf Debian 12 (Bookworm) installieren und konfigurieren

Artikel suchen

Nginx auf Debian 12 (Bookworm) installieren und konfigurieren

3 Views

Schritt-für-Schritt-Anleitung: Nginx auf Debian 12 installieren, systemd einsetzen, Virtual Host anlegen und HTTPS mit Let’s Encrypt aktivieren. Für Boxis-Kunden und Systemadministratorinnen.

Nginx auf Debian 12 (Bookworm) installieren und konfigurieren

Stand: März 2026
Lesezeit: ca. 12 Minuten
Zielgruppe: Systemadministratorinnen und fortgeschrittene Nutzer mit Debian-12-Server.

Nginx ist ein leistungsfähiger HTTP-Server und Reverse Proxy. Unter Debian 12 (Bookworm) lässt er sich gut mit systemd betreiben und eignet sich vor PHP, Node.js oder APIs. Diese Anleitung beschreibt eine saubere Installation, grundlegende Absicherung, einen minimalen Virtual Host und optional TLS mit Let’s Encrypt.


Was Sie am Ende haben

  • Nginx aus den Debian-Repositories installiert und den Dienst geprüft.
  • HTTP/HTTPS-Ports freigegeben (Beispiel mit UFW).
  • Eigenes Document Root und ein eigener server-Block.
  • Optional: Let’s-Encrypt-Zertifikat und automatische Erneuerung.

Voraussetzungen

  • Debian-12-System mit SSH-Zugang.
  • Benutzer mit sudo-Rechten (kein dauerhaftes Arbeiten als root).
  • DNS-Name (z. B. app.example.com), der auf die öffentliche IP zeigt, wenn Sie HTTPS und Erneuerung nutzen möchten.
  • Grundkenntnisse der Shell.

Hinweis Boxis: Bei gemanagtem Hosting können Servereingriffe eingeschränkt sein; klären Sie Änderungen an der Webstack vor dem Eingriff mit dem Support.


1. Paketindex aktualisieren und Nginx installieren

sudo apt update
sudo apt install -y nginx

Debian liefert eine stabile Nginx-Version; externe Repositories sind nur nötig, wenn spezielle Module erforderlich sind.


2. Firewall: HTTP und HTTPS (UFW)

Wenn UFW aktiv ist:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
sudo ufw status

Bei nftables oder Cloud-Sicherheitsgruppen öffnen Sie TCP 80 und TCP 443 dort entsprechend.


3. Nginx mit systemd

Aktion Befehl
Autostart sudo systemctl enable nginx
Start sudo systemctl start nginx
Status sudo systemctl status nginx
Konfiguration neu laden sudo systemctl reload nginx
Syntax prüfen sudo nginx -t

Nach Konfigurationsänderungen immer nginx -t ausführen, bevor Sie neu laden.


4. Konfigurationspfade unter Debian

Typisch:

  • Hauptkonfiguration: /etc/nginx/nginx.conf
  • Sites: /etc/nginx/sites-available/ (Symlinks in sites-enabled/)
  • Zusätzlich: /etc/nginx/conf.d/*.conf

sites-available / sites-enabled erleichtern das Aktivieren und Deaktivieren einzelner Sites.


5. Virtual Host anlegen

Beispiel: app.example.com mit Dateien unter /var/www/app.example.com/html.

5.1 Verzeichnisse und Testseite

sudo mkdir -p /var/www/app.example.com/html
echo '<!DOCTYPE html><html><head><meta charset="utf-8"><title>OK</title></head><body><h1>It works</h1></body></html>' | sudo tee /var/www/app.example.com/html/index.html
sudo chown -R www-data:www-data /var/www/app.example.com

5.2 Server-Block

Datei /etc/nginx/sites-available/app.example.com.conf:

server {
    listen 80;
    listen [::]:80;
    server_name app.example.com;

    root /var/www/app.example.com/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Site aktivieren:

sudo ln -sf /etc/nginx/sites-available/app.example.com.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Test mit Browser oder curl -I http://app.example.com.


6. HTTPS mit Let’s Encrypt

sudo apt install -y certbot python3-certbot-nginx

Zertifikat anfordern (E-Mail und Domain anpassen):

sudo certbot --nginx -d app.example.com -m sie@example.com --agree-tos --non-interactive

Erneuerung prüfen:

sudo certbot renew --dry-run

Die Erneuerung übernimmt meist ein systemd-Timer oder cron; prüfen mit systemctl list-timers | grep certbot.


7. Betriebsempfehlungen

  • Nach Konfigurationsänderungen reload statt restart, wenn möglich.
  • Bei hohem Traffic pro Site eigene Logs (access_log / error_log).
  • server_tokens off; wenn Richtlinien es erlauben.
  • PHP/Apps: fastcgi_pass zu PHP-FPM oder proxy_pass zum Upstream konsistent halten.
  • Backup von /etc/nginx/ vor größeren Änderungen.

8. Kurz-Fehlersuche

Symptom Prüfen
502 Bad Gateway Backend nicht erreichbar; falscher proxy_pass / fastcgi_pass.
403 Forbidden Dateirechte; root-Pfad; SELinux/AppArmor.
Konfiguration wird nicht geladen sudo nginx -t und Zeilen angegeben.
Zertifikat erneuert nicht DNS zeigt noch hierher; Port 80 für HTTP-01 erreichbar.

9. Zusammenfassung

Sie haben Nginx auf Debian 12 installiert, Webports freigegeben, einen Virtual Host erstellt und optional HTTPS mit Certbot aktiviert. Für Produktion: Logging, Rate Limits und Upstream-Health weiter verfeinern.


Verwandte Themen

  • Knowledge-Base-Suche: /{lang}/knowledgebase/search/
  • Hosting & DNS: Kategorie Hosting & Domains, sofern vorhanden.

Allgemeine Anleitung; Befehle können je nach Image und Anpassungen abweichen.

Was this article helpful?
Views: 3