日志在系统中监视应用程序的活动非常重要,因为日志为您提供了有用的调试信息,并使您能够分析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域的访问日志:
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 /var/log/nginx/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 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:用于紧急情况下立即处理。
- crit: Used for Critical issues for immediately dealing.
error:处理页面时,可能会发生错误。 - warn:用于警告消息
- notice:您也可以忽略的通知日志。
- info:有关信息,消息
- debug:指向用于调试信息的错误位置。
总结
Nginx访问和错误日志对于记录某些活动非常有用。我们已经了解了如何在Linux系统上启用和查看这些类型的Nginx日志。这就是Nginx日志的全部内容。