如何在Nginx中启用调试日志

3,326 阅读2分钟

在使用Nginx网络服务器时,最常见的任务之一是检查调试日志。知道如何启用和解释调试日志 ,对于排除应用程序或服务器问题是非常有帮助的,因为这些日志提供详细的调试信息。在Nginx中,你可以启用调试日志,检查上游的交互和内部行为。

Nginx在两个日志中记录其事件:错误日志访问日志。在继续前进之前,让我们了解一下错误日志和调试日志的基本概念。

什么是Nginx的错误日志

Nginx遇到的任何错误,如意外停止或面临与上游连接或连接时间有关的问题,都记录在错误日志中。错误日志记录了与服务器和应用程序问题有关的信息。

什么是Nginx的访问日志

Nginx在处理所有客户端请求后不久,就将其记录在访问日志中。在访问日志中可以找到访问的文件、客户使用的浏览器、Nginx对请求的反应以及客户的IP地址等信息。访问日志的数据可以用来分析流量,并跟踪网站在一段时间内的使用情况。

这篇文章将告诉你如何在Nginx中启用错误日志和访问日志来进行调试。那么,让我们开始吧

如何在Nginx中启用错误日志

按 "CTRL+ALT+T"打开终端。之后,执行下面的命令,打开nginx配置文件,在nginx配置文件中启用错误日志。

$ sudo nano /etc/nginx/nginx.conf

你的Nginx配置文件会以某种方式看起来像这样。

在错误日志文件中,Nginx记录了与应用程序有关的常见服务器故障和问题的信息。如果你有与基于Web的应用程序有关的问题,那么错误日志是寻找解决方案的第一个地方。在Nginx中,"error_log"指令启用并配置了错误日志的位置和日志级别。

Nginx中error_log的内涵

error_log"指令可以添加在server{}http{}location{} 块中。

在Nginx中error_log的语法

error_log [log_file_path] [log_level]

为了配置error_log,你必须添加日志文件的路径并设置日志级别。如果你不设置第二个参数,那么error_log将把 "error"作为其默认的日志级别。

error_log /var/log/nginx/error.log;

log_level参数决定了日志记录的级别。下面是 "error_log"指令所利用的log_level的列表。

  • debug:"debug"日志级别是为消息调试设置的。
  • warn:" warn"被设置为通知警告的日志级别。
  • info: 这个log_level协助错误日志,提供信息性的消息
  • error:处理一个请求时发生的错误
  • alerts: 警报是一种需要立即采取行动的通知 类型。
  • crit:它处理需要处理的问题
  • emerg:紧急情况。需要立即采取行动的情况。

error_log指令默认定义在http {}块中。然而,你也可以把它放在location{}或server块内。

现在,我们将在我们的服务器块中添加下面这一行,以启用具有 "debug"日志级别的错误日志。

error_log /var/log/nginx/example.error.log debug;

如何在Nginx中启用访问日志

每当处理一个客户请求时,Nginx都会在访问日志中添加一个新的事件。这些日志存储了访问者的位置,他们查看的网页信息,以及在该网页上花费的时间。每条事件记录包括一个时间戳以及关于客户端请求资源的不同细节。

日志格式指令允许你决定你的日志信息格式。access_log指令用于启用日志文件的位置和它的格式。默认情况下,访问日志是在http{}块中启用的。

Nginx中access_log的含义

access_log指令可以添加在server{}、http{}、location{}块中。

access_log在Nginx中的语法

access_log [log_file_path] [log_format]

如果不指定 "log_format",那么access_log将启用默认的 "组合"access_format。然而你可以自定义日志格式,如下。

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

在定制了日志的格式后,你可以在http{}块中添加以下一行,以启用访问日志。

access_log /var/log/nginx/access.log main;

要在服务器{}块中添加access_log,请按照下面给出的语法操作。

access_log /var/log/nginx/example.access.log main;

如果你有一个繁忙的网站或你的服务器资源不足,你可以禁用访问日志。要做到这一点,你必须将access_log的值设为 "off"。

access_log off;

在特定块中配置完error_log或access_log后,按 "CTRL+O"来保存所添加的行。

现在,在终端执行 "nginx"命令,使用"-t"选项来测试Nginx配置文件及其上下文。

$ sudo nginx -t

最后,重启Nginx服务,就大功告成了。

$ sudo systemctl restart nginx

为了验证日志是否被启用和工作,查看Nginx的日志目录。

$ sudo ls /var/log/nginx

从输出结果来看,你可以看到访问和错误日志在我们的系统中是启用的。

如何查看Nginx的错误日志

你可以利用 "cat"命令来提取"/var/log/nginx/error.log"文件中的error_log内容。

$ sudo cat /var/log/nginx/error.log

如何查看Nginx的access_log

要查看access_log的内容,执行 "cat"命令并指定access_log目录。

$ sudo cat /var/log/nginx/access.log

总结

Nginx 包括可定制的调试 选项,用于收集信息,帮助你了解你的Web服务器行为。Nginx提供了两个文件用于记录Web服务器数据:error_logsaccess_logs,其中error_logs记录了意外或信息性的信息,access_logs存储了与客户请求有关的信息。在这篇文章中,我们已经解释了 error_logs、access_logs,以及如何在Nginx中启用error_logs和access_logs