Nginx日志

 

一、Nginx的日志类型

  当我们查看nginx安装目录下有个logs,包含了三个文件 "access.log 、error.log、nginx.pid"。

 

  access_log:记录每一次http请求的访问状态,用于分析每一次请求和交互,行为进行分析,依赖于log_format实现。

  error.log: 记录nginx处理http请求的错误的状态,以及nginx本身服务的运行错误状态,按照不同的级别进行记录。

 

二、访问日志配置说明

  1.日志格式的定义说明

    log_format:将nginx中的变量组织在一起,记录到access_log中。

    定义语法: log_format name string ……;

    其配置位置在http标签内。

 

    Nginx日志格式中默认的参数配置:

      log_format  main  '$remote_addr - $remote_user[$time_local]"$request" '
      '$status $body_bytes_sent "$http_referer" '
      '"$http_user_agent" "$http_x_forwarded_for"';

    其中,log_format为日志格式关键参数,不能改变。
    main是为日志格式指定的标签,记录日志时通过这个main标签选择指定的格式。其后所接的所有内容都是可以记录的日志信息。

 

    默认的main格式中具体用了哪些选项来记录日志?

 

   在没有特殊要求的情况下,采用默认的配置即可。

 

  2.记录日志的access_log参数说明

    下面是有关access_log参数的官方说明。

    语法如下:
  access_log path[format[buffer=size[flush=time]][if=condition]];
  access_log path format gzip[=level][buffer=size][flush=time][if=condition];
  access_log syslog:server=address[,parameter=value][format[if=condition]];123
 
  buffer=size为存放访问日志的缓冲区大小,flush=time为将缓冲区的日志刷到磁盘的时间,gzip[=level]表示压缩级别,[if=condition]表示其他条件。一般的场景中,这些参数都无须配置,极端优化时才可能会考虑这些参数。
 
  access_log off中的off,表示不记录访问日志。
  默认配置:access_log logs/access.log combined;
  放置位置在http、server、location、if in location、limit_except中。
 
 
三、访问日志配置文件(nginx.conf)
 
  编辑主配置文件 nginx.conf ,配置日志格式如下:

 

 

  然后在每个虚拟主机里进行配置,使其使用上述格式记录用户访问日志。命令如下:

 

 

 

  如果不指定日志格式就会用默认的combined格式记录日志。
  接下来进行检查语法,重新加载配置,命令如下:

 

 

 

  进行测试访问:

  [root@private conf]# ls -l ../logs/access_blog.log

  [root@private conf]# tailf -5 ../logs/access_blog.log

 

 

 

  

 

posted @ 2020-04-22 22:56  zhaihuijie  阅读(306)  评论(0编辑  收藏  举报