2009-11-10 11 views

Antwort

295

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; 
+8

Das ist vielleicht versionsabhängig, aber mein Logbuch ist drin: '/ opt/nginx/logs/error.log' – jmarceli

+15

auf Mac OS X mit homebrew:/usr/local/var/log/nginx. siehe lfender's [antwort] (http://stackoverflow.com/a/27402568/576767) –

+5

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

238

Ich war auf der Suche nach einer anderen Lösung.

/var/log/nginx/error.log 
+1

Offenbar ist dies nur zur Kompilierzeit konfigurierbar mit der Kompilieroption '--error-log-path' http://trac.nginx.org/nginx/ticket/147 –

18

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.

98

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.

+4

es ist ein schöner Trick, um sich zu erinnern .. kein Raten mehr wo die Log-Dateien könnten –

+0

ausgezeichnet sein, wirklich. danke –

+7

das brachte mir bei, wie man fischt; Ich wünschte, ich könnte mehr – kurttheviking

46

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

tail -f /var/log/nginx/error.log 
1

Typ in Terminal sudo cat /var/log/nginx/error.log

+1

Das ist keine Antwort und sollte stattdessen ein Kommentar sein. Sobald Sie genügend Reputation haben, können Sie Kommentare abgeben. – mrun

0

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.