Nginx日志功能介绍

news/2024/11/22 19:39:26/

前言

  • 日志对于程序很重要,可用于问题排错,记录程序运行状态等。好的日志可以大大提高程序员的排错效率。Nginx中主要有访客日志错误日志两大部分。

设置访客日志

  • 访客日志主要记录客户端访问Nginx服务器时一些请求和响应信息。官方文档对于访客日志的说明:access_log
  • 设置访客日志需要在nginx配置文件 /usr/local/nginx/conf/nginx.conf设置以下信息,这个可以设置到http节点下,也可以设置到server节点下。默认已经在http节点下设置了日志。
  •   # 设置日志具体格式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;
    
  • 参数解释
    • $remote_addr : 访问网站的客户端IP地址
    • $remote_user : 客户端用户名称
    • $time_local : 访问时间与时区
    • $request : 用户的http请求起始行信息
    • $status : http响应状态码
    • $body_bytes_sent : 服务器发给客户端的响应body字节数
    • $http_referer : 记录请求是哪个链接访问过来的
    • $http_user_agent :记录客户端访问信息
    • $http_x_forwarded_for : 当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置。
  • 日志记录在 log/access.log中,发送一次请求,就会生成一条访问日志。我分别用postman和谷歌浏览器发送了一次GET请求,可以与上面设置的字段比对下。如果有哪个字段没有拿到数据,就会显示一条短横线。
  • postman请求
  •   192.168.206.1 - - [27/May/2023:19:59:15 -0700] "GET / HTTP/1.1" 200 634 "-" "PostmanRuntime/7.32.2" "-"
    
  • 谷歌浏览器请求
  •   192.168.206.1 - - [27/May/2023:20:06:02 -0700] "GET / HTTP/1.1" 200 634 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36" "-"
    

内置变量

  • 上面记录的日志信息是nginx默认设置的一些常用信息,如果我们记录更多的访客信息,可以自己在日志中添加其他变量。具体可参考nginx官网Alphabetical index of variables

关闭访客日志

  • 如果要关闭日志,在access_log后面的日志存储位置改成off,重新加载配置就关闭了。
  •   access_log  off;
    

设置错误日志

  • 错误日志默认是设置的全局的,也可以写到http节点或者server节点中。
  •   error_log  logs/error.log error;
    
  • 参数1表示日志的保存目录,参数2表示日志级别。日志级别有以下几种,默认是error
    • debug info notice warn error crit alert

http://www.ppmy.cn/news/97663.html

相关文章

C语言初阶之函数介绍及练习

函数介绍及练习 1.函数是什么?2.C语言中函数的分类:2.1 库函数2.2 自定义函数 3. 函数的参数3.1 实际参数(实参):3.2 形式参数(形参): 4.函数的调用4.1 传值调用4.2 传址调用 5. 函数…

《java核心卷Ⅰ》读书笔记

🛫 JDK和JRE傻傻分不清?🛫 HelloWorld的输出都经历了啥?🛫 Java的三个版本都是啥?🛫 关于main方法你都知道啥?main方法被声明为private会怎样?🛫 强制and自动类型转换都…

基于SSM的土家风景文化管理平台

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 前言…

【JVM】8. 对象实例化及直接内存

文章目录 8.1. 对象实例化8.1.1. 创建对象的方式8.1.2. 创建对象的步骤1. 判断对象对应的类是否加载、链接、初始化2. 为对象分配内存3. 处理并发问题4. 初始化分配到的内存5. 设置对象的对象头6. 执行init方法进行初始化 8.2. 对象内存布局8.2.1. 对象头(Header&am…

Lucene和Solr和Elasticsearch区别,全文检索引擎工具包Lucene索引流程和搜索流程实操

文章目录 基本概念什么是全文检索技术全文检索的应用场景搜索引擎站内搜索(关注)文件系统的搜索 Lucene & solr & es介绍区别Solr与Lucene对比ES与Lucene的区别ES与Solr对比 Lucene实现全文检索的流程入门程序需求环境准备数据库脚本初始化Lucen…

vue前端分页功能怎么实现

Vue前端分页功能可以通过以下几个步骤实现: 1. 安装分页组件库(如vue-pagination-2): bash npm install vue-pagination-2 2. 在Vue项目中引入并注册分页组件: javascript import Vue from vue; import Pagination fr…

历届蓝桥杯青少年编程比赛 计算思维题真题解析【已更新5套 持续更新中】

一、计算思维组考试范围 计算思维组面向小学生(7-12 岁,约 1-6 年级),通过设计多个角度的考核题目、层次科学的试卷组合、线上限时的考试形式,更加精确地考查学生的计算能力、反应能力、思维与分析能力,使…

RabbitMQ学习-延迟队列

延迟队列 背:也就是给队列设置个过期时间,然后到时间消息变成死信,消费死信队列中的消息就行,再没什么玩意,演示队列优化就是不给队列这只TTL,再生产者代码中消息里面设置消息TTL,因为 RabbitM…