我在哪里可以找到nginx的错误日志,使用fastcgi和django

时间:2009-11-10 07:09:25

标签: django nginx fastcgi error-log

我正在使用django和fastcgi + nginx。我想知道在这种情况下存储日志(错误)的位置

12 个答案:

答案 0 :(得分:415)

错误存储在nginx日志文件中。你可以在nginx配置文件的根目录中指定它。

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

答案 1 :(得分:281)

我一直在寻找不同的解决方案。

默认情况下,在我的系统(x86 Arch)上设置任何配置之前的错误日志位于:

/var/log/nginx/error.log

答案 2 :(得分:141)

在大多数情况下,您可以使用lsof(打开文件列表)查找打开的日志文件而不知道配置。

示例:

找到httpd的PID(相同的概念适用于nginx和其他程序):

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

然后使用带有PID的lsof搜索打开的日志文件:

$ 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

如果lsof没有打印任何内容,即使您希望找到日志文件,也可以使用sudo发出相同的命令。

您可以多阅读here

答案 3 :(得分:76)

运行此命令,检查错误日志:

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

答案 4 :(得分:33)

我的ngninx日志位于:

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

您还可以检查nginx.conf以查看是否有任何指令转储到自定义日志。

运行nginx -t找到您的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通常在/usr/local/etc/中设置。可以将服务器配置为将日志转储到/var/log

如果您有nginx安装的备用位置且所有其他方法都失败,您可以使用find命令找到您选择的文件。

find /usr/ -path "*/nginx/*" -type f -name '*.log',其中/usr/是您要开始搜索的文件夹。

答案 5 :(得分:7)

记录Linux服务器上的位置

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

答案 6 :(得分:4)

cd /var/log/nginx/
cat error.log

答案 7 :(得分:0)

键入终端 sudo cat /var/log/nginx/error.log

答案 8 :(得分:0)

在这里找到它/ usr / local / nginx / logs / *

答案 9 :(得分:0)

此外,在某些情况下,nginx由其他人进行配置,并且可能会更改您无权打开的日志文件路径。在这种情况下,上述某些情况不起作用,

所以这个基本原理不合适,但适用于所有情况,

打开命令链接并输入

nginx

,然后按Enter键以定义包含日志文件路径的详细信息。

答案 10 :(得分:0)

在 nginx 配置文件中设置访问日志的位置是一个很好的做法。使用 acces_log /path/ 像这样。

keyval $remote_addr:$http_user_agent $seen zone=clients;

server { listen 443 ssl;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers   HIGH:!aNULL:!MD5;

if ($seen = "") {
    set $seen  1;
    set $logme 1;
}
access_log  /tmp/sslparams.log sslparams if=$logme;
error_log  /pathtolog/error.log;
# ...
}

答案 11 :(得分:0)

对于 Mac OS 用户,您可以在终端中输入 nginx -help

nginx version: nginx/1.21.0
Usage: nginx [-?hvVtTq] [-s signal] [-p prefix]
             [-e filename] [-c filename] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /opt/homebrew/Cellar/nginx/1.21.0/)
  -e filename   : set error log file (default: /opt/homebrew/var/log/nginx/error.log)
  -c filename   : set configuration file (default: /opt/homebrew/etc/nginx/nginx.conf)
  -g directives : set global directives out of configuration file

然后,您可以找到一些配置和日志文件的默认路径,在这种情况下:

/opt/homebrew/log/nginx/error.log