日志 ###
该模块以指定格式写入请求日志。 默认 stream, server 设置缓冲日志写入的 如果使用了 小心 缓冲区大小不得超过对磁盘文件的原子写入大小。对于 FreeBSD,该大小是无限制的。 启用缓冲时,数据将写入文件: 如果下一行日志不适合缓冲区; 如果缓冲的数据比 flush 参数指定的时间更旧; 当工作进程 重新打开日志文件 或关闭时。 如果使用了 gzip 参数,则缓冲的数据将在写入文件之前进行压缩。压缩级别可以设置在 1`(最快,压缩较少)到 `9`(最慢,压缩效果最好)之间。默认情况下,缓冲区大小等于 `64K 字节,压缩级别设置为 1。由于数据以原子块压缩,因此日志文件可以在任何时候通过 "zcat" 解压或读取。 示例: 重要 为了使 gzip 压缩生效,Angie 必须使用 zlib 库构建。 文件路径可以包含变量,但这类日志有一些限制: 使用工作进程凭据的 user 应该具有在此类日志目录中创建文件的权限; 不支持缓冲写入; 每次日志写入时都会打开和关闭文件。然而,由于可以将频繁使用的文件的描述符存储在缓存中,因此在 open_log_file_cache 指令的 valid 参数指定的时间内,可以继续写入旧文件。 if 参数启用条件日志记录。如果条件评估为 "0" 或空字符串,则不会记录该会话。 指定日志格式。 对于 对于 默认 stream, server 定义一个缓存,用于存储包含变量名称的频繁使用日志的文件描述符。该指令具有以下参数: 设置缓存中描述符的最大数量;如果缓存已满,则关闭最少使用(LRU)描述符 设置缓存描述符在此时间内未被访问后关闭的时间; 设置在 inactive 参数定义的时间内,文件使用的最小次数,以便让描述符保持在缓存中打开; 设置检查文件是否仍然以相同名称存在的时间; 禁用缓存 用法示例:配置示例#
log_format basic '$remote_addr [$time_local] '
'$protocol $status $bytes_sent $bytes_received '
'$session_time';
access_log /spool/logs/angie-access.log basic buffer=32k;
指令#
access_log#
access_log
path [format [buffer=
size] [gzip[=level]] [flush=
time] [if=
condition]];access_log
off
;access_log off;
path
、format
和配置。可以在同一配置级别上指定多个日志。通过在第一个参数中指定 "syslog:"
前缀,可以配置记录到 syslog。特殊值 off
取消当前级别上的所有 access_log
指令。buffer
或 gzip
参数,则日志写入将被缓冲。access_log /path/to/log.gz basic gzip flush=5m;
log_format#
escape
参数允许在变量中设置 json
或 default
字符转义,默认使用 default
转义。none
值禁用转义。default
转义,字符 ""、"\" 以及值小于 32 或大于 126 的其他字符将被转义为 "\xXX"。如果未找到变量值,则将记录一个连字符 "-"。json
转义,所有在 JSON 字符串中不允许的字符都将被转义:字符 """ 和 "\" 被转义为 "\"" 和 "\\",值小于 32 的字符被转义为 "\n"、"\r"、"\t"、"\b"、"\f" 或 "\u00XX"。open_log_file_cache#
open_log_file_cache
max = N [inactive=
time] [min_uses=
N] [valid=
time];open_log_file_cache off;
max
inactive
默认值为 10 秒min_uses
默认值为 1valid
默认值为 60 秒off
open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;