• Nginx日志功能介绍


    前言

    • 日志对于程序很重要,可用于问题排错,记录程序运行状态等。好的日志可以大大提高程序员的排错效率。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;
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
    • 参数解释
      • $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" "-"
      
      • 1
    • 谷歌浏览器请求
    •   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" "-"
      
      • 1

    内置变量

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

    关闭访客日志

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

    设置错误日志

    • 错误日志默认是设置的全局的,也可以写到http节点或者server节点中。
    •   error_log  logs/error.log error;
      
      • 1
    • 参数1表示日志的保存目录,参数2表示日志级别。日志级别有以下几种,默认是error
      • debug info notice warn error crit alert
  • 相关阅读:
    Linux中的库(静态库和动态库)详解
    算法设计与分析 SCAU11079 可以移动的石子合并(优先做)
    Android Studio 直接获取Spinner的值
    【Linux】U盘安装的cfg引导文件配置
    嵌入式开发:简化传感器的5个技巧
    GBMLlib(GBase支撑数据挖掘和机器学习)简介
    【uniapp小程序】路由跳转navigator传参封装
    【编解码格式】DivX系列、XviD
    加速大数据分析:Apache Kylin使用心得与最佳实践详解
    一次spark任务提交参数的优化
  • 原文地址:https://blog.csdn.net/new9232/article/details/130910096