一文详细介绍查看和启用nginx日志(access.log和error.log),nginx错误日志的安全级别,自定义访问日志中的格式

news/2024/4/24 2:49:53/文章来源:https://blog.csdn.net/lvoelife/article/details/130223766

文章目录

  • 1. 文章引言
  • 2. Nginx访问日志(access.log)
    • 2.1 简述访问日志
    • 2.2 启用Nginx访问日志
    • 2.3 自定义访问日志中的格式
  • 3. Nginx错误日志(error.log)
    • 3.1 简述错误日志
    • 3.2 启用错误日志
    • 3.3 Nginx错误日志的安全级别
  • 4. 文末总结

1. 文章引言


我们在实际工作中,经常使用到日志。

日志在一个系统中是非常重要的,它可以监控一个应用程序的活动,因为它们为你提供有用的调试信息,并使你能够分析一个Web服务器的所有方面。

像其他软件应用程序一样,Nginx也会将诸如网站访问者、遇到的问题等事件保存到日志文件中。

这些有用的记录信息被用来采取先发制人的措施,以便处理日志事件中的重大严重差异。

Nginx中记录事件的日志,有如下两种类型:

  1. 一种是访问日志:access.log

  2. 一种是错误日志:error.log

在这里插入图片描述

如果你安装Nginx后,不知道Nginx日志的存放地址,可以采用如下方式:

  1. 首先,使用如下命令查看Nginx的安装目录
[root@test ~] which nginx
/usr/local/nginx/sbin/nginx
  1. 其次,使用如下命令进入到log目录中
[root@test local] cd /usr/local/nginx[root@test nginx] ls
conf logs sbin ... [root@test nginx]cd ./logs[root@test logs] ls -l
total 92540
-rw-r--r-- 1 root root 92712667 Apr 19 15:16 access.log
-rw-r--r-- 1 root root  2033057 Apr 19 15:00 error.log
-rw-r--r-- 1 root root        6 Apr 18 09:20 nginx.pid

如此,你便可以访问Nginx日志的存放地址。

如果随着Nginx版本的升级,Nginx默认的访问地址不在该目录下,你可以通过如下命令查看Nginx的配置文件:

[root@test nginx] cd /usr/local/nginx/conf[root@test conf] cat nginx.confuser  root;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;pid        /usr/local/nginx/logs/nginx.pid;
...
http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;......}
}

在配置文件中,你可以看到nginxaccess_logerror.log的地址,只不过注释了。

【注意】这里的地址是相对地址,相对于Nginx安装目录的地址。

2. Nginx访问日志(access.log)

2.1 简述访问日志


所有与网站访问者有关的活动都记录在访问日志中,如下图所示:

在这里插入图片描述

在这种日志中,你可以看下到最近访问过如下信息:

  1. 请求接口、方法(get,post...)等

  2. Nginx是如何响应客户端请求的

  3. 客户端的IP地址

  4. 客户端使用的是什么浏览器

通过使用访问日志的信息,你可以监控流量,找到网站在一段时间内的使用情况。

如果你正确地监控访问日志,那么你可以很容易地发现一些由用户发送的异常请求,从而检查部署的应用程序的缺陷。

2.2 启用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 test.comaccess_log  /var/log/nginx/test.access.log;......}
}

重新加载新的Nginx配置。

现在,您可以使用以下命令,在文件/var/log/nginx/test.access.log中访问test.com域的访问日志:

sudo tail -f /var/log/nginx/test.access.log

2.3 自定义访问日志中的格式

我们解释一个定义自定义访问日志格式的示例。

默认情况下,访问日志以组合日志格式记录。

因此,您可以使用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/test.access.log custom;...}
}

Nginx的配置进行所有更改后,请重新加载Nginx。

接着运行tail命令以在事件日志的末尾显示gzip比率,如下代码所示:

$ sudo tail -f /var/log/nginx/example.access.log

3. Nginx错误日志(error.log)

3.1 简述错误日志


如果Nginx突然停止运行或无法正常工作,它将在错误日志中记录所有事件,如下图所示:

在这里插入图片描述

因此,使用错误日志,您可以找到更多详细信息。

它还记录警告,但无法识别已发生的问题。

3.2 启用错误日志


error_log指令的以下语法:

error_log log_file log_level ;

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 test2.com;error_log  /var/log/nginx/test2.error_log  debug;...}
}

当需要禁用错误日志时,请将日志文件的名称分配给/dev/null,如下代码:

error_log/dev/null;

3.3 Nginx错误日志的安全级别


您可以在错误日志中使用以下安全级别:

  1. emerg:当系统不稳定时,用于紧急消息

  2. alert:生成严重问题的警报消息。

  3. crit:用于紧急情况下立即处理。

  4. error:处理页面时,可能会发生错误。

  5. warn:用于警告消息

  6. notice:您也可以忽略的通知日志。

  7. info:有关信息,消息

  8. debug:指向用于调试信息的错误位置。

4. 文末总结


Nginx访问和错误日​​志对于记录某些活动非常有用。

以上就是如何在Linux系统上启用和查看这些类型的Nginx日志的全部内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_103186.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习spark笔记

✨ 学习 Spark 和 Scala 一 ​ 🐦Spark 算子 spark常用算子详解(小部分算子使用效果与描述不同) Spark常用的算子以及Scala函数总结 Spark常用Transformations算子(二) Transformation 算子(懒算子):不会提交spark作业&#…

SLAM论文速递:SLAM—— 流融合:基于光流的动态稠密RGB-D SLAM—4.25(2)

论文信息 题目: FlowFusion:Dynamic Dense RGB-D SLAM Based on Optical Flow 流融合:基于光流的动态稠密RGB-D SLAM论文地址: https://arxiv.org/pdf/2003.05102.pdf发表期刊: 2020 IEEE International Conference on Robotics and Automa…

flex布局属性详解

Flex布局 flex-directionflex-wrapflex-flowjustify-contentalign-itemsalign-content其他orderflexalign-self 含义:Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。 flex-direction flex-direction属性决定主轴的方向&…

危险区域闯入识别系统 yolov8

危险区域闯入识别系统通过YOLOv8网络模型技术,危险区域闯入识别系统对现场画面中发现有人违规闯入禁区,系统立即抓拍告警同步回传后台。YOLOv8 提供了一个全新的 SOTA 模型,包括 P5 640 和 P6 1280 分辨率的目标检测网络和基于 YOLACT 的实例…

Model-Contrastive Federated Learning 论文解读(CVPR 2021)

Model-Contrastive Federated Learning 论文解读 对比学习SimCLR 对比学习的基本想法是同类相聚,异类相离 从不同的图像获得的表征应该相互远离,从相同的图像获得的表征应该彼此靠近 具体框架: T随机数据增强模块:随机裁剪然…

光波导相控阵技术

在简述电光效应和热光效应的基础上综述了国内外光波导相控阵技术研究进展,包括一维和二维光波导相控阵的技术途径、结构特点和性能指标,给出了光波导相控阵的优势以及在激光雷达、成像等领域的应用前景。结果表明,光波导相控阵技术正向着大扫…

JavaScript Debugger 调试断点模式

在代码中加入debugger,相当于断点停顿,可用于查看变量传递情况,比如:Vue组件中生命周期onLoad(options) ,在上一页面进入下一页面后,传递进来的参数值。 备注 :options 参数为字符串&#xff0…

从需求分析到上线发布,一步步带你开发收废品小程序

在如今的环保和可持续性的大趋势下,废品回收已经成为了人们日常生活中不可或缺的一部分。收废品小程序的开发可以帮助人们更方便地找到回收废品的地点,并有效减少废品对环境造成的污染。因此,我们的收废品小程序需要满足以下需求:…

2023年电信推出新套餐:月租19元=135G流量+长期套餐+无合约期!

在三大运营商推出的流量卡当中,电信可以说是性价比最高的一个,相对于其他两家运营商,完全符合我们低月租,大流量的要求,所以,今天小编介绍的还是电信流量卡。 在这里说一下,小编推荐的卡都是免…

中国制造再击败一家海外企业,彻底取得垄断地位

中国制造已在13个行业取得领先优势,凸显出中国制造的快速崛起,日前中国制造又在一个行业彻底击败海外同行,再次证明了中国制造的实力。 一、海外企业承认失败 提前LGD宣布它位于广州的8.5代液晶面板生产线停产,预计该项目将出售给…

Linux命令rsync增量同步目录下的文件

业务场景描述 最近遇到一个问题,需要编写相应的Linux命令,增量同步/var/mysql里的所有文件到另外一个目录/opt/mysql,但是里面相关的日志文件xx.log是不同步的,这个场景,可以使用rsync来实现 什么是rsync命令&#x…

6、什么是类型断言?

虽然 TypeScript 很强大,但有时还不如我们了解一个值的类型方便,这时候我们更希望 TypeScript 不要帮我们进行类型检查,而是交给我们自己来,所以就用到了类型断言。类型断言有点像是一种类型转换,它把某个值强行指定为…

当,Kotlin Flow与Channel相逢

前言 之前的文章已经分析了Flow的相关原理与简单使用,Flow之所以用起来香,Flow便捷的操作符功不可没,而想要熟练使用更复杂的操作符,那么需要厘清Flow和Channel的关系。 本篇文章构成: 1. Flow与Channel 对比 1.1 Fl…

论文实验1、安装tensorflow运行节点嵌入相关方法

还是官方的教程好使 使用 pip 安装 TensorFlow 只有三步 1.安装python,版本太高不行,在推荐版本里选最高的。 2.安装python虚拟环境venv python -m venv --system-site-packages .\venv .\venv\Scripts\activate 3.在虚拟环境里装tensorflow pip…

开发人员应考虑使用 Edge浏览器的 8 个理由

1.无限访问ChatGPT 这是正确的。您可以通过 Bing 访问 GPT-4。但与 2021 年后没有数据的 ChatGPT 不同,必应通过从自己的搜索引擎中提取最新数据来对其进行补偿。 首先,点击Edge 浏览器左上角的Bing 小图标 Bing 具有三个选项卡:Chat、Compo…

VSCode连接远程服务器调试代码详细流程

文章目录 1.远程连接服务器2. 打开项目文件目录3. 配置调试环境 在研究人工智能项目时,很多时候本地机器性能不够,只能把代码拉倒服务器上,然后利用服务器资源来运行代码。遇到问题时需要调试,本文详细介绍利用VScode来调试远程服…

DAB-Deformable-DETR代码学习记录之模型构建

DAB-DETR的作者在Deformable-DETR基础上,将DAB-DETR的思想融入到了Deformable-DETR中,取得了不错的成绩。今天博主通过源码来学习下DAB-Deformable-DETR模型。 首先我么看下Deformable的创新之处: Deformable-DETR创新 多尺度融合 首先便是…

layui 表格中嵌入下拉框被遮挡

1、代码 单元格样式: * 设置下拉框的高度与表格单元相同 */.layui-table-cell {width: 100%;height: 100%;border: 1px;border-color: #F2F2F2;} 表格初始化后的回调: done: function (res, curr, count) {$(".layui-table-body, .layui-tabl…

MC9S12G128开发板—实现按键发送CAN报文指示小车移动功能

实验环境:MC9S12G128开发板 基本功能:控制开发板上的按键,模拟车辆移动的上下左右四个方位,通过can通信告诉上位机界面,车辆轨迹的移动方位。 1. 1939报文发送的示例代码 MC9S12G128开发板1939协议发送can报文数据的…

php+vue 校友交流平台

1.普通用户功能分析 (1)用户注册:用于注册校友录用户。 (2)用户登录:供校友录用户登录。 (3)资料修改:修改当前登录使用者信息。 (4)…