一、Nginx日志配置 分类

  access_log 访问日志配置

  log_format 定义日志格式

  open_log_file_cache 设置日志缓存

  log_not_found 记录不存在 日志配置

  log_subrequest 记录子请求的日志配置

  rewrite_log Rewrite 日志

  error_log 错误日志

二、日志配置

  1、access_log 配置

  语法:access_log path [format [buffer=size [flush=time]]];

               access_log  path  gzip[=level][buffer=size][flush=time];

               access_log  syslog:server=address[parameter=value][format];

        access_log  off:

  默认值: access logs/access.log  main;

  可配置字段: http、server、location、 if in location、limit_execpt

 Gzip 压缩等级

  Buffer 设置内存缓存区大小

  Flush 保存在缓存区中的最长时间

  不记录日志:access_log off;

  使用默认combined 格式记录日志: access_log logs/access.log main;

 2、log_format配置

  语法:log_format name string …;

 默认值: log_format main "…";

 配置段: http

 ----------------------

 name:表示日志格式的名称 

 string:表示定义的格式

  log_format 有一个默认的无需配置的main日志格式:

 wKioL1cODXDw2EDWAAAT6o8mNLY570.png


  注意:如果Nginx当做负载均衡器、反向代理使用后,web服务器无法直接获取到客户端的真是的IP地址了。

      $remote_addr  获取反向代理的IP地址。 反向代理服务器的转发请求的http头信息中,可以增加X-Forwarded-For 信息。用来计入客户端IP地址和客户端请求的服务器地址

 wKioL1cODYzRAUA2AAAR_-rIkas314.png

 变量参数详解:

    $remote_addr,$http_x_forwarded_for   记录客户端IP地址

    $remot_user 记录客户端用户名称

    $request   记录请求的URL和HTTP协议

    $status 记录请求状态码

    $body_bytes_sent 发送客户端的字节数,不包括响应头的大小,

    $bytes_sent 发送给客户端的总字节数

    $connection 连接的序列号

    $connection_request 当前通过一个链接获得的请求数量

    $msec 日志写入时间。单位为秒,精度是毫秒

    $pipe 如果请求是通过HTTP流水线(pipelined)发送,pipe值为 “p”,否则为“.”。

    $http_referer 记录从哪个页面连接访问过来的

     $http_user_agent 记录客户端浏览器相关信息

     $request_length 请求的长度(包括请求行,请求头,和请求正文)

     $request_time 请求处理时间,单位为秒,精度为毫秒

     $time_ios8601 ISO8601标准格式下的本地时间

     $time_local 通用日志格式下的本地时间

3、open_log_file_cache配置

 语法:open_log_file_cache max=N [inactive=time] [min_user=N] [valid=time];

               open_log_file_cache off;

  默认配置:open_log_file_cache off;

 可配置字段: http、server、location

  

 对于每一条日志记录,都将是先打开文件,再写入日志,然后关闭。可以使用open_log_file_cache来设置日志文件缓存(默认是OFF),格式如下:

  max:设置缓存中的最大文件描述符数量,如果缓存被占满,采用LRU算法将描述关闭

  inactive:设置存活时间,默认是10秒

  min_uses:设置在inactive 时间段内,日志文件最少使用多少次后,该日志文件描述符记入缓  存中,默认是1次。

4、log_not_found 配置

语法:log_not_found on|off;

默认值:log_not_found on;

可配置字段:http、server、location

作用:是否正在error_log中记录不存在的错误。默认是。

5、log_subrequest配置

语法:log_subrequest on|off;

默认值:log_subrequest off;

可配置字段:http、server、location

是否在access_log 中记录子请求的访问日志。默认不记录。

6、rewrite_log指令

由ngx_http_rewrite_module 模块提供。用来记录重写日志的。在调试的时候建议打开。

语法:rewrite_log on|off;

默认值:rewrite_log off;

可配置字段:http、server、location、if

启用时在error_log中记录notice级别的重写日志。

7、error_log指令

语法:error_log file | stderr | syslog:server=address[parameter=value][debug|info|notic|warn|error|crit|alert|emerg];

默认值:error_log logs/error.log error;

可配置字段:main、http、server、location

配置错误日志