Nginx日志你了解多少

日志在系​​统中监视应用程序的活动非常重要,因为日志为您提供了有用的调试信息,并使您能够分析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 Domain
                  access_log  /var/log/nginx/example.access.log;
                  ...
                  ...
                }
}

重新加载新的NGINX配置。 现在,您可以使用以下命令在/var/log/nginx/example.access.log文件中访问example.com域的访问日志:
linuxmi@linuxmi:~/www.linuxmi.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 ar/loginx/example.access.log custom;
                    ...
            }
}

对Nginx的配置进行所有更改后,请重新加载Nginx,然后运行tail命令以在事件日志的末尾显示gzip比率。
linuxmi@linuxmi:~/www.linuxmi.com$ 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 Example 1;
                    error_log  /var/log/nginx/example1.error_log  warn;
                        ...
       }
       server {
    
    
                listen 80;
                server_name Interesting articles to read. Free tutorials and HOW-TOs;
                    error_log  /var/log/nginx/example2.error_log  debug;
                        ...
   }
}

当需要禁用错误日志时,请将日志文件的名称分配给/dev/null。
error_log /dev/null;

Nginx错误日志的安全级别

您可以在错误日志中使用以下安全级别:
emerg:当系统不稳定时,用于紧急消息
alert:生成严重问题的警报消息。
crit:用于紧急情况下立即处理。
crit: Used for Critical issues for immediately dealing.
error:处理页面时,可能会发生错误。
warn:用于警告消息
notice:您也可以忽略的通知日志。
info:有关信息,消息
debug:指向用于调试信息的错误位置。

总结

Nginx访问和错误日志对于记录某些活动非常有用。 我们已经了解了如何在Linux系统上启用和查看这些类型的Nginx日志。 这就是Nginx日志的全部内容。

以上有不足的地方欢迎指出讨论,觉得不错的朋友希望能得到您的转发支持,同时可以持续关注我,每天分享Linux C/C++后台开发干货内容!最后,小编推荐自己的Linux、C/C++技术交流群:【960994558】整理了一些个人觉得比较好的学习书籍、视频资料共享在里面(包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等等.),有需要的可以自行添加哦!

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_52622200/article/details/111638868