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;
    
  • 参数解释
    • $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

猜你喜欢

转载自blog.csdn.net/new9232/article/details/130910096