菜鸟笔记
提升您的技术认知

如何查看nginx日志?-ag真人游戏

日志在一个系统中是非常重要的,它可以监控一个应用程序的活动,因为它们为你提供有用的调试信息,并使你能够分析一个web服务器的所有方面。像其他软件应用程序一样,nginx也会将诸如网站访问者、遇到的问题等事件保存到日志文件中。这些有用的记录信息被用来采取先发制人的措施,以便处理日志事件中的重大严重差异。
在本文中,我们将详细介绍如何在香港服务器的ubuntu 20.04系统中配置和查看nginx日志,以监控应用程序的活动。
在nginx中记录事件的日志有两种类型,一种是访问日志,另一种是错误日志。如果你已经在nginx核心配置文件中启用了这些日志,那么在所有linux发行版中,你都可以在/var/log/nginx中找到这两种类型的日志。

nginx访问日志

所有与网站访问者有关的活动都记录在访问日志中。在这种日志中,你可以找到最近访问过的文件,nginx是如何响应客户端请求的,客户端的ip地址,客户端使用的是什么浏览器等等。通过使用访问日志的信息,你可以监控流量,找到网站在一段时间内的使用情况。如果你正确地监控访问日志,那么你可以很容易地发现一些由用户发送的异常请求,从而检查部署的应用程序的缺陷。

启用nginx访问日志

您可以在服务器部分或http中使用access_log指令启用访问日志。
access_log log_file log_format ;
第一个参数’log_file’是强制性的,而第二个参数是可选的’log_format’。如果您未提及日志格式,则将以默认的组合格式键入日志。
默认情况下,访问日志是在nginx配置文件中定义的。因此,所有虚拟主机的访问日志将存储在同一配置文件中。

http {
      ...
      access_log  /var/log/nginx/access.log;
      ...
}

建议通过记录到新的单独文件中来分开所有虚拟主机的访问日志。

http {
      ...
      ...
      access_log  /var/log/nginx/access.log;
   
         server {
                  listen 80;
                  server_name example.com
                  access_log  /var/log/nginx/example.access.log;
                  ...
                  ...
                }
}

重新加载新的nginx配置。现在,您可以使用以下命令在文件/var/log/nginx/example.access.log中访问example.com域的访问日志:
$ sudo tail -f /var/log/nginx/example.access.log

自定义访问日志中的格式

让我们解释一个定义自定义访问日志格式的示例。默认情况下,访问日志以组合日志格式记录。因此,您可以使用gzip response的值扩展预定义格式的压缩率。

http {
            log_format custom '$remote_addr - $remote_user [$time_local] '
                           '"$request" $status $body_bytes_sent '
                           '"$http_referer" "$http_user_agent" "$gzip_ratio"';
            server {
                    gzip on;
                    ...
                    access_log /var/log/nginx/example.access.log custom;
                    ...
            }
}

对nginx的配置进行所有更改后,请重新加载nginx,然后运行tail命令以在事件日志的末尾显示gzip比率。
$ sudo tail -f /var/log/nginx/example.access.log

nginx错误日志

如果nginx突然停止运行或无法正常工作,它将在错误日志中记录所有事件。因此,使用错误日志,您可以找到更多详细信息。它还记录警告,但无法识别已发生的问题。
启用错误日志
error_log指令的以下语法:
error_log log_file log_level ;
在以上语法中,第一个参数表示日志文件路径,第二个参数标识日志事件的安全级别。
我们在下面提到了一个示例,其中在服务器上下文中的error_log指令中执行覆盖。

http {
       ...
       ...
       error_log  /var/log/nginx/error_log;
       server {
                listen 80;
                server_name example1.com;
                    error_log  /var/log/nginx/example1.error_log  warn;
                        ...
       }
       server {
                listen 80;
                server_name example2.com;
                    error_log  /var/log/nginx/example2.error_log  debug;
                        ...
   }
}

当需要禁用错误日志时,请将日志文件的名称分配给/dev/null。
error_log/dev/null;
nginx错误日志的安全级别
您可以在错误日志中使用以下安全级别:
emerg:当系统不稳定时,用于紧急消息
alert:生成严重问题的警报消息。
crit:用于紧急情况下立即处理。
error:处理页面时,可能会发生错误。
warn:用于警告消息
notice:您也可以忽略的通知日志。
info:有关信息,消息
debug:指向用于调试信息的错误位置。

网站地图