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/– Hauptkonfigurationnginx.conf, dazusites-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.logunderror.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.