1 配置Nginx访问日志-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

配置Nginx访问日志

马哥Linux运维 来源:入门小站 作者:入门小站 2022-05-24 09:59 次阅读

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

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

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

教程概述了如何配置和读取Nginx访问和错误日志。配置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; ... }

/etc/nginx/nginx.conf

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


	

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

/etc/nginx/conf.d/domain.com.conf

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


	

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

要更改日志记录格式,请覆盖默认设置或定义一个新设置。例如,定义一个名为main的新日志记录格式,它将用添加X-Forwarded-Forheader的值来扩展combined格式,在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_log off;

配置错误日志

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

	
		error_loglog_filelog_levellog_level参数设置日志记录级别。以下是按严重性从低到高列出的级别:
  • debug-调试消息。
  • info-信息性消息。
  • notice-公告。
  • warn- 警告。
  • error-处理请求时出错。
  • crit-关键问题。需要立即采取行动。
  • alert-警报。必须立即采取行动。
  • emerg- 紧急情况。系统处于无法使用的状态。
每个日志级别包括更高级别。例如,如果你将日志级别设置为warn,则Nginx还将记录errorcritalertemerg消息。未指定log_level参数时,默认为error。 默认情况下,error_log指令在主nginx.conf文件内的http指令上下文中定义:

	
		http{ ... error_log/var/log/nginx/error.log; ... }
		/etc/nginx/nginx.conf
		与访问日志相同,建议为每个服务器设置一个单独的错误日志文件,该文件将覆盖更高级别的设置如http指令上下文。
		例如,要将domain.com的错误日志设置为warn,你可以使用:

	
		http{ ... error_log/var/log/nginx/error.log; ... server{ server_namedomain.com error_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/201941:46+0000]"GET/HTTP/1"200396"-""Mozilla/0(X11;Linuxx86_64)AppleWebKit/536(KHTML,likeGecko)Chrome/38120Safari/536"
		让我们细分Nginx日志文件记录的每个字段意味着什么:
  • $remote_addr-192.168.33.1-发出请求的客户端的IP地址。
  • $remote_user---HTTP身份验证用户。未设置用户名时,此字段显示-
  • [$time_local]-[15/Oct/201941:46 +0000]
本地服务器时间。
  • "$request"-"GET / HTTP/1.1"-请求类型,路径和协议。
  • $status-200-服务器响应代码。
  • $body_bytes_sent-396-服务器响应的大小(以字节为单位)。
  • "$http_referer"-"-"-引荐网址。
  • "$http_user_agent"-Mozilla/5.0 ...-客户端的用户代理(网络浏览器)。
使用tail命令实时观看日志文件记录:tail -f access.log

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    9123

    浏览量

    85320
  • 源代码
    +关注

    关注

    96

    文章

    2945

    浏览量

    66730
  • nginx
    +关注

    关注

    0

    文章

    149

    浏览量

    12170

原文标题:配置 Nginx 访问与错误日志

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    nginx+lua+redis实现灰度发布

    作者:马仁喜 前言: 授人以鱼不如授人以渔 .先学会用,在学原理,在学创造,可能一辈子用不到这种能力,但是不能不具备这种能力。这篇文章主要是沉淀使用nginx+lua+redis实现灰度,当我们具备
    的头像 发表于 12-17 10:01 39次阅读

    Nginx代理转发实战:零基础掌握服务器流量分发技巧

    的url中就会带上location中的匹配路径。      假设下面四种 Nginx配置,都用 http://192.168.1.8/proxy/test.html 进行访问: 第一种:
    的头像 发表于 12-09 12:28 232次阅读

    Nginx日常运维方法Linux版

    Nginx安装目录?   whereis nginx   如图: 执行目录:/usr/sbin/nginx 模块所在目录:/usr/lib64/nginx/modules
    的头像 发表于 12-06 16:38 145次阅读
    <b class='flag-5'>Nginx</b>日常运维方法Linux版

    「服务器」Nginx Proxy Manager申请cloudflare泛域名

    一概述NginxProxyManager是一个基于Nginx的反向代理管理工具,它提供了一个用户友好的Web界面,方便用户管理和配置Nginx反向代理。主要功能包括:简易的用户界面:通过图形界面
    的头像 发表于 12-06 01:03 125次阅读
    「服务器」<b class='flag-5'>Nginx</b> Proxy Manager申请cloudflare泛域名

    详解nginx中的正则表达式

    前言,我这里验证的nginx-v1.23.2单机环境下的nginx中的正则表达式、location路径匹配规则和优先级。
    的头像 发表于 12-03 09:59 144次阅读
    详解<b class='flag-5'>nginx</b>中的正则表达式

    使用lsof实现对linux文件的误删除恢复练习

    本文记录使用lsof实现对linux文件的误删除恢复练习。题目如下: 1.确保当前nginx进程运行中 2.删除日志文件,rm -f /var/log/nginx/access.log 3.以
    的头像 发表于 11-24 11:14 172次阅读
    使用lsof实现对linux文件的误删除恢复练习

    nginx负载均衡配置介绍

    目录 nginx负载均衡 nginx负载均衡介绍 反向代理与负载均衡 nginx负载均衡配置 Keepalived高可用nginx负载均衡器
    的头像 发表于 11-10 13:39 230次阅读
    <b class='flag-5'>nginx</b>负载均衡<b class='flag-5'>配置</b>介绍

    nginx日志配置方法

    access_log用来定义日志级别,日志位置。
    的头像 发表于 10-24 17:43 222次阅读

    日志篇:模组日志总体介绍

    ​今天我们学习合宙模组日志总体介绍,以下进入正文。 一、本文讨论的边界 本文是对合宙 4G 模组, 以及 4G+GNSS 模组的日志功能的总体介绍。通过日志,可以对研发过程中,以及模组运行过程中
    的头像 发表于 10-24 07:16 183次阅读
    <b class='flag-5'>日志</b>篇:模组<b class='flag-5'>日志</b>总体介绍

    nginx中的正则表达式和location路径匹配指南

    前言,我这里验证的nginx-v1.23.2单机环境下的nginx中的正则表达式、location路径匹配规则和优先级。
    的头像 发表于 09-29 16:02 711次阅读
    <b class='flag-5'>nginx</b>中的正则表达式和location路径匹配指南

    铁威马教程 如何收集NAS的日志

    适用版本: 适用于TOS 5.0.xxx、TOS5.1.xxx版本。 适用机型: TNAS型号(除F2-210、F4-210) 故障现象: 当TNAS宕机导致网页不可访问且PC无法搜索到该设备
    的头像 发表于 07-16 18:02 624次阅读
    铁威马教程 如何收集NAS的<b class='flag-5'>日志</b>

    nginx重启命令linux步骤是什么?

      1、验证nginx配置文件是否正确   方法一:进入nginx安装目录sbin下,输入命令./nginx -t   看到如下显示nginx
    发表于 07-11 17:13

    nginx重启命令linux步骤是什么?

      1、验证nginx配置文件是否正确   方法一:进入nginx安装目录sbin下,输入命令./nginx -t   看到如下显示nginx
    发表于 07-10 16:40

    奇怪!应用的日志呢??

    1. 问题回顾 问题背景 是在进行中台应用中间件迁移过程中,发现存在 项目启动失败 或者 项目正常启动 (jsf正常挂载并正常运行,mq正常发送和消费)但是 无任何日志打印 现象。 更奇怪 的是不打
    的头像 发表于 06-11 10:48 310次阅读
    奇怪!应用的<b class='flag-5'>日志</b>呢??

    什么是Apache日志?Apache日志分析工具介绍

    Apache Web 服务器在企业中广泛用于托管其网站和 Web 应用程序,Apache 服务器生成的原始日志提供有关 Apache 服务器托管的网站如何处理用户请求以及访问您的网站时经常遇到的错误的重要信息。
    的头像 发表于 01-04 10:09 830次阅读