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

文章目录

  • 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.conf

user  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.com
                  access_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日志的全部内容。

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

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

相关文章

数字设计小思 - D触发器与死缠烂打的亚稳态

前言 本系列整理数字系统设计的相关知识体系架构,为了方便后续自己查阅与求职准备。在FPGA和ASIC设计中,D触发器是最常用的器件,也可以说是时序逻辑的核心,本文根据个人的思考历程结合相关书籍内容和网上文章,聊一聊D…

函数-函数递归及练习

目录 1、什么是递归? 2、递归的两个必要条件 3、递归的练习 3.1 接受一个整型值(无符号),按照顺序打印它的每一位 3.2 编写函数不允许创建临时变量,求字符串的长度 3.3 求第n个斐波那契数 3.4 字符串逆序&…

Go语言-数据结构与算法

go语言之专业数据结构与算法 20.4 稀疏 sparsearray 数组 20.4.1 先看一个实际的需求  编写的五子棋程序中,有存盘退出和续上盘的功能 稀疏数组的处理方法是 : 1) 记录数组一共有几行几列,有多少个不同的值 2) 思想:把具有不同值…

【五一创作】【Midjourney】Midjourney 连续性人物创作 ② ( 获取大图和 Seed 随机种子 | 通过 seed 随机种子生成类似图像 )

文章目录 一、获取大图和 Seed 随机种子二、通过 seed 种子生成类似图像 一、获取大图和 Seed 随机种子 注意 : 一定是使用 U 按钮 , 在生成的大图的基础上 , 添加 信封 表情 , 才能获取该大图的 Seed 种子编码 ; 在上一篇博客生成图像的基础上 , 点击 U3 获取第三张图的大图 ;…

STL常用梳理——VECTOR常用接口及其迭代器实现

Vector篇 Vector介绍Vector实现1、定义默认构造函数使用实现 2、迭代器Iterator迭代器使用 3、空间增长问题使用实现 迭代器迭代器介绍迭代器实现 Vector介绍 vector是STL中容器之一,特性如下: vector是表示可变大小数组的序列容器。就像数组一样&#…

Python基础合集 练习21 (错误与异常处理语句)

‘’‘try: block1 except[ExceptionName]: block2 ‘’’ block1:执行代码,表示可能会出现错误的代码块 ExceptionName: 表示要捕获的异常名称,为可选参数.如果不指定异常名称,则表示捕获所有异常 block2:表示发生异常时执行的代码块 while True: try: num int(input(请输…

设计模式——工厂模式

导航: 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线设计模式牛客面试题 目录 1、工厂模式介绍 2、披萨项目需求 3、传统方式 4、非静态简单工厂模式 5、静态简单工厂模式 6、工厂方法模式 7、抽象工厂模…

spass modeler

课时1:SPSS Modeler 简介 本课时一共分为五个模块,分别是Modeler概述、工具安装、窗口说明以及功能介绍和应用案例。相信通过本课时内容的学习,大家将会对SPSS Modeler有个基础的了解. 在学习本节课内容之前,先来看看本节课我们究…

目标检测模型量化---用POT工具实现YOLOv5模型INT8量化

POT工具是什么 POT工具,全称:Post-training Optimization Tool,即训练后优化工具,主要功能是将YOLOv5 OpenVINO™ FP32 模型进行 INT8 量化,实现模型文件压缩,从而进一步提高模型推理性能。 不同于 Quantiz…

MYSQL-数据库管理(上)

一、数据库概述 一、数据库基本概念 1.1 数据 1) 描述事物的符号记录称为数据(Data)。数字、文字、图形、图像、声音、档案记录等 都是数据。 2)数据是以“记录”的形式按照统一的格式进行存储的,而不是杂乱无章的。…

Mask2Former来了!用于通用图像分割的 Masked-attention Mask Transformer

原理https://blog.csdn.net/bikahuli/article/details/121991697 源码解析 论文地址:http://arxiv.org/abs/2112.01527 项目地址:https://bowenc0221.github.io/mask2former Mask2Former的整体架构由三个组件组成: 主干特征提取器&#xff…

【Java笔试强训 29】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥求正数数…

UNIX环境高级编程——进程关系

9.1 引言 本章详细说明进程组以及会话的概念,还将介绍登录shell(登录时所调用的)和所有从登录shell启动的进程之间的关系。 9.2 终端登录 9.3 网络登录 9.4 进程组 每个进程除了有一进程ID之外,还属于一个进程组,进…

chatgpt 数据相关应用论文策略简介

hatGPT等预训练大模型,一个核心能力就是经过海量语料的训练加上强化学习的引导,其具有强大的接近人类的文本生成能力。这个能力的一大用途,就是可以为我们生产数据或者标注数据,再基于这些数据训练我们自己的模型。 On the Feasi…

如何让ChatGPT成为科研工作中的小助手?(附使用指南)

大家好,我是带我去滑雪! 从2022年年底发布叫ChatGPT的人工智能聊天机器人以来,逐渐强势进入了各行各业,一夜火爆全网,它使用自然语言处理技术来与用户进行交互和沟通,可以回答用户关于知识、娱乐、生活等方…

【计算机专业漫谈】【计算机系统基础学习笔记】W1-计算机系统概述

利用空档期时间学习一下计算机系统基础,以前对这些知识只停留在应试层面,今天终于能详细理解一下了。参考课程为南京大学袁春风老师的计算机系统基础MOOC,参考书籍也是袁老师的教材,这是我的听课自查资料整理后的笔记,…

上市公司碳排放测算数据(1992-2022年)

根据《温室气体核算体系》,企业的碳排放可以分为三个范围。 范围一是直接温室气体排放,产生于企业拥有或控制的排放源,例如企业拥有或控制的锅炉、熔炉、车辆等产生的燃烧排放;拥有或控制的工艺设备进行化工生产所产生的排放。 范…

第十五章 角色移动旋转实例

本章节我们创建一个“RoleDemoProject”工程,然后导入我们之前创建地形章节中的“TerrainDemo.unitypackage”资源包,这个场景很大,大家需要调整场景视角才能看清。 接下来,我们添加一个人物模型,操作方式就是将模型文…

基于GWO灰狼优化算法的城市路径优化问题GWO-TSP(MATLAB程序)

资源地址: 基于GWO灰狼优化算法的城市路径优化问题GWO-TSP(MATLAB程序)资源-CSDN文库 主要内容: 主要采用灰狼优化算法对城市间的路径进行规划。城市分布图如图所示。 部分代码: % 产生问题模型 model CreateModel(Oliver30.…

kafka常见问题QA(六)

六、常见问题QA 6.1 无消息丢失如何配置 producer 调用方式 (1)网络抖动导致消息丢失,Producer 端可以进行重试。 (2)消息大小不合格,可以进行适当调整,符合 Broker 承受范围再发送。 不要使用…