Nginx (ausgesprochen „Engine X“) ist ein Hochleistungs-Webserver, Reverse-Proxy und Load-Balancer. Seine Prozessarchitektur besteht aus einem Master-Prozess und mehreren Worker-Prozessen. Dieser Artikel erklärt die wichtigsten Befehle und Signale für den Betrieb.

Konfiguration testen

Vor jedem Reload sollte die Konfiguration geprüft werden – Nginx selbst bietet dafür den -t-Schalter:

sudo nginx -t              # Konfiguration testen (syntax is ok)
sudo nginx -T              # komplett aufgelöste Konfiguration ausgeben
sudo nginx -t -c /etc/nginx/nginx.conf   # alternative Konfigurationsdatei testen

Dienst mit systemctl steuern

sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx      # Konfiguration neu laden, kein Ausfall
sudo systemctl status nginx
sudo systemctl enable nginx      # Autostart

Signale an den Master-Prozess

Alternativ lässt sich der Master-Prozess direkt per Signal steuern – das Kommando nginx -s ist der sichere Weg, da es die PID-Datei selbst findet:

sudo nginx -s reload    # Konfiguration neu laden (entspricht HUP)
sudo nginx -s reopen    # Logdateien neu öffnen (entspricht USR1, nach logrotate)
sudo nginx -s quit      # graceful shutdown (entspricht QUIT, offene Verbindungen enden)
sudo nginx -s stop      # sofortiger Stopp (entspricht TERM)

Weitere Signale: USR2 startet einen neuen Master-Prozess für binäre Upgrades, WINCH beendet die alten Worker-Prozesse kontrolliert.

Verzeichnisstruktur

  • /etc/nginx/ – Hauptkonfiguration nginx.conf, dazu sites-available/, sites-enabled/, conf.d/, modules-enabled/
  • /etc/nginx/sites-enabled/ – aktivierte Server-Blöcke (meist Symlinks)
  • /var/www/html/ – Standard-DocumentRoot auf Debian/Ubuntu
  • /var/log/nginx/access.log und error.log

Ein Server-Block (Virtual Host) liegt in /etc/nginx/sites-available/beispiel.de und wird über einen Symlink in sites-enabled/ aktiviert. Nach jeder Änderung gilt: erst nginx -t, dann systemctl reload nginx.

Verwandte Grundlagen: Webserver, Apache-Befehle, Tomcat-Befehle, Reverse-Proxy, Load-Balancer, TLS 1.3.