如何配置Nginx访问与错误日志


这篇“如何配置Nginx访问与错误日志”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何配置Nginx访问与错误日志”文章吧。

Nginx是一个开放源代码的高性能HTTP和反向代理服务器,负责处理Internet上某些最大站点的负载。在管理NGINX网络服务器时,你要执行的最常见任务之一就是检查日志文件。

在对服务器或应用程序问题进行故障排除时,知道如何配置和读取日志非常有用,因为它们提供了详细的调试信息。

Nginx用两种类型的日志记录其事件:访问日志和错误日志。访问日志记录有关客户端请求的信息,错误日志记录有关服务器和应用程序问题的信息。

配置Nginx访问日志

每当处理客户请求时,Nginx都会在访问日志中生成一个新记录。每个事件记录都包含一个时间戳,并包含有关客户端和所请求资源的各种信息。访问日志可以显示访问者的位置,访问者的访问的页面等。

log_format指令允许你定义记录日志的格式。access_log指令启用并设置日志文件的位置和使用的格式。

access_log指令的最基本语法如下:

access_loglog_filelog_format;

其中log_file是日志文件的完整路径,log_format是日志文件使用的格式。可以在httpserverlocation指令的上下文中启用访问日志。

默认情况下,Nginx主配置文件中的http指令配置了全局访问日志格式。

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

为获得更好的可维护性,建议为每个服务器设置一个单独的访问日志文件。在server指令中设置的access_log指令将覆盖在http指令中设置的access_log

http{...access_log/var/log/nginx/access.log;...server{server_namedomainaccess_log/var/log/nginx/domain.access.log;...}}

如果未指定日志格式,Nginx将使用预定义bined组合格式,如下所示:

log_format&nbspbined'$remote_addr-$remote_user[$time_local]''"$request"$status$body_bytes_sent''"$http_referer""$http_user_agent"';

要更改日志记录格式,请覆盖默认设置或定义一个新设置。例如,定义一个名为main的新日志记录格式,它将用添加X-Forwarded-Forheader的值来扩展<codebined格式,在httpserver中添加以下定义指令:

log_formatcustom'$remote_addr-$remote_user[$time_local]"$request"''$status$body_bytes_sent"$http_referer"''"$http_user_agent""$http_x_forwarded_for"';

要使用新日志格式,请在日志文件后指定其名称,如下所示:

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

虽然访问日志提供了非常有用的信息。但它会占用磁盘空间,并可能影响服务器性能。如果服务器资源不足,并且网站繁忙,则可能要禁用访问日志。为此,请将access_log伪指令的值设置为off。理论上你不会出现这种情况,Nginx会自动删除前期的日志文件:

access_logoff;

配置错误日志

Nginx将应用程序和常规服务器错误的消息写入错误日志文件。如果你在Web应用程序中遇到错误,则错误日志是你开始进行排查问题的第一个位置。error_log指令启用并设置错误日志的位置和严重性级别。它采用以下格式,可以在httpserverlocation上下文中进行设置:

error_loglog_filelog_level

log_level参数设置日志记录级别。以下是按严重性从低到高列出的级别:

debuginfonoticewarnerrorcritalertemerg

每个日志级别包括更高级别。例如,如果你将日志级别设置为warn,则Nginx还将记录errorcritalertemerg消息。未指定log_level参数时,默认为error。默认情况下,error_log指令在主nginx.conf文件内的http指令上下文中定义:

http{...error_log/var/log/nginx/error.log;...}
http{...error_log/var/log/nginx/error.log;...server{server_namedomainerror_log/var/log/nginx/domain.error.logwarn;...}}

无论何时修改配置文件,都必须重新加载Nginx服务,以使更改生效。

日志文件的位置

在大多数Linux发行版中,例如Ubuntu ,CentOS和Debian。默认情况下,访问和错误日志位于/var/log/nginx目录中。

读取和理解Nginx日志文件

你可以使用catlessgrepcutawk等命令打开和解析nginx日志文件。以下是使用默认的Nginx日志格式的访问日志文件的记录:

192.168.33.1--[15/Oct/2023:19:41:46+0000]"GET/HTTP/1"200396"-""Mozilla/0(X11;Linuxx86_64)AppleWebKit/536(KHTML,likeGecko)Chrome/38120Safari/536"

让我们细分Nginx日志文件记录的每个字段意味着什么:

  • $remote_addr&ndash;192.168.33.1-发出请求的客户端的IP地址。

  • $remote_user&ndash;--HTTP身份验证用户。未设置用户名时,此字段显示-

  • [$time_local]&ndash;[15/Oct/2023:19:41:46 +0000]

本地服务器时间。

  • "$request"&ndash;"GET / HTTP/1.1"-请求类型,路径和协议。

  • $status&ndash;200-服务器响应代码。

  • $body_bytes_sent&ndash;396-服务器响应的大小(以字节为单位)。

  • "$http_referer"&ndash;"-"-引荐网址。

  • "$http_user_agent"&ndash;Mozilla/5.0 ...-客户端的用户代理(网络浏览器)。

使用tail命令实时观看日志文件记录:tail -f access.log

以上就是关于“如何配置Nginx访问与错误日志”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注主机评测网行业资讯频道。


上一篇:Laravel8的路由与控制器实例分析

下一篇:Java如何实现日志文件监听并读取相关数据


Copyright © 2002-2019 测速网 https://www.inhv.cn/ 皖ICP备2023010105号 城市 地区 街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!
热门搜索