Fehler in nginx-Konfigurationsdateien einfach finden

English Deutsch

Wenn du eine nginx-Konfigurationsdatei bearbeitet hast und nginx nicht neu laden oder starten möchte, z.B. mit einer Fehlermeldung wie dieser:

check_nginx.sh
# service nginx reload
Job for nginx.service failed because the control process exited with error code.
See "systemctl  status nginx.service" and "journalctl  -xe" for details.

hast du wahrscheinlich einen Fehler in einer deiner Konfigurationsdateien.

Es gibt einen einfachen Befehl zum Prüfen auf Fehler (du musst ihn als root ausführen): nginx -t

Beispielausgabe:

nginx_error_output.txt
nginx: [emerg] unknown directive "autoindex$" in /etc/nginx/sites-enabled/mysite:31
nginx: configuration file /etc/nginx/nginx.conf test failed

Die letzte Zeile sagt dir zuerst, dass tatsächlich ein Fehler in den Konfigurationsdateien vorliegt. Die erste Zeile sagt dir genau, wo er sich befindet: /etc/nginx/sites-enabled/mysite:31 bedeutet: Schau in der Datei /etc/nginx/sites-enabled/mysite, Zeile 31.

In diesem speziellen Fall lautet die tatsächliche Fehlermeldung unknown directive "autoindex$". Durch das Prüfen der vorgenannten Datei konnte ich feststellen, dass ich versehentlich autoindex $; statt autoindex on; eingegeben hatte.

Nach der Behebung dieses Problems zeigt nginx -t, dass die Konfigurationsdatei nun korrekt zu sein scheint:

nginx_test_success.txt
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Beachte, dass zwar die meisten Fälle, in denen nginx nicht (neu) startet, durch Probleme in den Konfigurationsdateien verursacht werden, es aber einige Fälle gibt, in denen die Konfigurationsdatei korrekt erscheint und nginx dennoch nicht startet. In diesem Fall schau dir das Logfile an, das sich üblicherweise unter /var/log/nginx/error.log befindet. Du musst root sein, um es anzuzeigen. Ich empfehle diesen Befehl:

tail_nginx_errorlog.sh
sudo tail -n 1000 /var/log/nginx/error.log

Check out similar posts by category: Linux, Nginx