Ich benutze Django mit Fastcgi + Nginx. Ich möchte wissen, wo die Protokolle (Fehler) in diesem FallWo kann ich die Fehlerprotokolle von Nginx finden, mit Fastcgi und Django
Antwort
Fehler in Nginx-Protokolldatei gespeichert sind. Sie können es im root der nginx-Konfigurationsdatei angeben.
error_log /var/log/nginx/nginx_error.log warn;
Ich war auf der Suche nach einer anderen Lösung.
/var/log/nginx/error.log
Offenbar ist dies nur zur Kompilierzeit konfigurierbar mit der Kompilieroption '--error-log-path' http://trac.nginx.org/nginx/ticket/147 –
Meine ngninx Protokolle befinden sich hier:
/usr/local/var/log/nginx/*
Sie
Fehlerprotokolle, standardmäßig, bevor eine Config festgelegt ist, auf meinem System (x86 Arch), wurde gefunden Überprüfen Sie auch Ihre nginx.conf
, um zu sehen, ob Sie irgendwelche Direktiven zum benutzerdefinierten Protokoll dumping haben.
run nginx -t
, um Ihre nginx.conf
zu finden.
# 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 ist in der Regel in /usr/local
oder /etc/
einrichten. Der Server könnte so konfiguriert werden, dass Protokolle auch an /var/log
ausgegeben werden.
Wenn Sie einen alternativen Speicherort für Ihre nginx-Installation haben und alles andere fehlschlägt, können Sie den Befehl find
verwenden, um die gewünschte Datei zu finden.
find /usr/ -path "*/nginx/*" -type f -name '*.log'
, wobei /usr/
der Ordner ist, mit dem Sie suchen möchten.
Sie können lsof
(Liste der geöffneten Dateien) in den meisten Fällen verwenden, um offene Protokolldateien zu finden, ohne die Konfiguration zu kennen.
Beispiel:
Finden Sie die PID von httpd (gleiche 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
...
dann für offene Log-Dateien suchen, indem lsof
mit dem PID:
$ 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 lsof
druckt nichts, obwohl Sie erwartet, dass die Protokolldateien gefunden werden, Problem derselbe Befehl unter Verwendung von sudo
.
Sie können ein wenig mehr here lesen.
es ist ein schöner Trick, um sich zu erinnern .. kein Raten mehr wo die Log-Dateien könnten –
ausgezeichnet sein, wirklich. danke –
das brachte mir bei, wie man fischt; Ich wünschte, ich könnte mehr – kurttheviking
cd /var/log/nginx/
cat error.log
Führen Sie diesen Befehl, Fehlerprotokolle zu überprüfen:
tail -f /var/log/nginx/error.log
Typ in Terminal sudo cat /var/log/nginx/error.log
Das ist keine Antwort und sollte stattdessen ein Kommentar sein. Sobald Sie genügend Reputation haben, können Sie Kommentare abgeben. – mrun
ich mit MarthyM bin. Standardmäßig sind in Ubuntu sowohl access.log
als auch error.log
in /var/log/nginx/
. Aber Sie können sie in /etc/nginx/nginx.conf
oder /etc/nginx/sites-available/your-site-file
ändern.
Das ist vielleicht versionsabhängig, aber mein Logbuch ist drin: '/ opt/nginx/logs/error.log' – jmarceli
auf Mac OS X mit homebrew:/usr/local/var/log/nginx. siehe lfender's [antwort] (http://stackoverflow.com/a/27402568/576767) –
Auf ubuntu habe ich es in '/ var/log/nginx/error.log'. Am besten ist es, die Datei 'nginx.conf' zu überprüfen und die Einstellung' error_log' zu finden. – MarthyM