Wo finde ich die Fehlerprotokolle von nginx mit fastcgi und django?

359

Ich benutze Django mit Fastcgi + Nginx. Ich möchte wissen, wo in diesem Fall die Protokolle (Fehler) gespeichert sind

ha22109
quelle

Antworten:

481

Fehler werden in der Nginx-Protokolldatei gespeichert. Sie können es im Stammverzeichnis der Nginx-Konfigurationsdatei angeben.

error_log  /var/log/nginx/nginx_error.log  warn;

Unter Mac Os X mit Homebrew wurde die Protokolldatei standardmäßig am folgenden Speicherort gefunden:

/usr/local/var/log/nginx
Syava
quelle
11
Das ist vielleicht /opt/nginx/logs/error.log
versionabhängig,
49
unter Mac OS X mit Homebrew: / usr / local / var / log / nginx. siehe lfender die Antwort
Félix Gagnon-Grenier
11
Auf Ubuntu habe ich es in /var/log/nginx/error.log. Überprüfen Sie am besten die nginx.confDatei und finden Sie die error_logEinstellung.
MarthyM
Wo haben Sie diese Informationen gefunden?
etiennejcharles
300

Ich suchte nach einer anderen Lösung.

Standardmäßig wurden auf meinem System (x86 Arch) Fehlerprotokolle gefunden, bevor eine Konfiguration festgelegt wurde:

/var/log/nginx/error.log
Ben
quelle
1
Anscheinend ist dies nur zur Kompilierungszeit mit der --error-log-pathKompilierungsoption trac.nginx.org/nginx/ticket/147
Michael Berkowski
auf Himbeer-Pi3 ist es der Ort
Bludau Media
161

lsofIn den meisten Fällen können Sie (Liste der geöffneten Dateien) verwenden, um geöffnete Protokolldateien zu finden, ohne die Konfiguration zu kennen.

Beispiel:

Finden Sie die PID von httpd (dasselbe Konzept gilt für Nginx und andere Programme):

$ ps aux | grep httpd
...
root     17970  0.0  0.3 495964 64388 ?        Ssl  Oct29   3:45 /usr/sbin/httpd
...

Suchen Sie dann lsofmit der PID nach offenen Protokolldateien :

$ lsof -p 17970 | grep log
httpd   17970 root    2w   REG             253,15     2278      6723 /var/log/httpd/error_log
httpd   17970 root   12w   REG             253,15        0      1387 /var/log/httpd/access_log

Wenn lsofnichts gedruckt wird, obwohl Sie erwartet haben, dass die Protokolldateien gefunden werden, geben Sie denselben Befehl mit ein sudo.

Sie können ein wenig mehr lesen hier .

Omoser
quelle
4
Es ist ein schöner Trick, sich zu erinnern. Keine Ahnung mehr, wo sich die Protokolldateien befinden könnten
Yo Ludke,
12
das brachte mir das Fischen bei; Ich wünschte, ich könnte mehr
Stimmen
+1 Für eine Antwort, wie man aussieht. Ich suchte nach Protokollen aus einer anderen Installation von Nginx und es war nicht in der Top-Antwort.
Robert Dundon
Sie können ähnliche Daten unter Linux im /procDateisystem durchsuchen. /proc/${pid}/fdhat Symlinks zu den geöffneten Dateien, Pipes, Geräten usw.
Avindra Goolcharan
91

Führen Sie diesen Befehl aus, um Fehlerprotokolle zu überprüfen:

tail -f /var/log/nginx/error.log
Taimoor Changaiz
quelle
39

Meine ngninx-Protokolle befinden sich hier:

/usr/local/var/log/nginx/*

Sie können auch überprüfen nginx.conf, ob Anweisungen im benutzerdefinierten Protokoll gespeichert sind.

laufen nginx -t, um Ihre zu finden nginx.conf.

# in ngingx.conf
error_log  /usr/local/var/log/nginx/error.log;
error_log  /usr/local/var/log/nginx/error.log  notice;
error_log  /usr/local/var/log/nginx/error.log  info;

Nginx wird normalerweise in /usr/localoder eingerichtet /etc/. Der Server kann so konfiguriert werden, dass auch Protokolle ausgegeben werden /var/log.

Wenn Sie einen alternativen Speicherort für Ihre Nginx-Installation haben und alles andere fehlschlägt, können Sie den findBefehl verwenden, um die Datei Ihrer Wahl zu finden.

find /usr/ -path "*/nginx/*" -type f -name '*.log', wo /usr/ist der Ordner, aus dem Sie suchen möchten.

lfender6445
quelle
Die Protokolle werden hier angezeigt, wenn Sie Nginx mit Homebrew installiert haben.
Sridhar Sarnobat
9

Protokolliert den Speicherort auf Linux-Servern

Apache  /var/log/httpd/

IIS  C:\inetpub\wwwroot\

Node.js  /var/log/nodejs/

nginx  /var/log/nginx/

Passenger  /var/app/support/logs/

Puma  /var/log/puma/

Python  /opt/python/log/

Tomcat  /var/log/tomcat8
Syed Shibli
quelle
4
cd /var/log/nginx/
cat error.log
user4989001
quelle
2

Geben Sie diesen Befehl in das Terminal ein

sudo cat /var/log/nginx/error.log
Priyasha
quelle
1
Das ist keine Antwort und sollte stattdessen ein Kommentar sein. Sobald Sie einen ausreichenden Ruf haben, können Sie einen Kommentar abgeben.
Mrun
0

Fand es hier / usr / local / nginx / logs / *

mygeea
quelle