Nginx 的访问日志主要记录用户客户端的请求信息(见下表)。用户的每次请求都会记录在访问日志中,access_log 指令可以设置日志的输出方式及引用的日志格式。
名称 | 访问日志指令 |
---|---|
指令 | access_log |
作用域 | http、stream、server、location、if in location、limit except |
指令值格式 | logs/access.log combined; |
指令 | off 或 path[format[buffer=size][gzip[=level]][flush=time][if=condition]]; |
指令说明 | 设置访问日志输出方式及引用的日志格式 |
关于 access_log 指令有以下几点需要说明:
- 在同一级别的指令域中,也可指定多个日志;
- 指令值中的第一个参数用于设置输出日志的方式,默认是输出到本地的文件中。该指令也支持输出到 syslog 或内存缓冲区中;
- 该指令在 stream 指令域中时,默认值为 off;
access_log off;
- 参数 path,设置日志输出的文件路径或 syslog 服务器地址;
access_log logs/access.log combined;
- 参数 format,设置关联 log_format 指令定义的日志格式名;
- 参数 buffer,设置日志文件缓冲区大小。当缓冲区日志数据超出该值时,缓冲区日志数据会被写到磁盘文件。默认缓冲区大小为 64KB;
- 参数 flush,设置日志缓冲区刷新的时间间隔,缓冲区日志的保护时间超过这个设定值时,缓冲区日志数据会被写到磁盘文件;
- 参数 gzip,设置缓冲区数据的压缩级别,缓冲区数据会被压缩后再写出到磁盘文件。压缩级别范围 1~9,级别越高压缩比越高,系统资源消耗也最大,默认级别为 1;
access_log logs/log.gz combined gzip flush=5m;
- 参数 if,设置是否记录日志,当参数值的条件成立,即不为 0 或空时,才记录日志。
map $status $loggable {~