1.access_log 指令
说明:日志开关情况需根据实际项目需求情况处理。
不记录日志: access_log off;
默认格式:
语法格式: access_log path [format [buffer=size [flush=time]]];
access_log path format gzip[=level] [buffer=size] [flush=time]
access_log syslog:server=address[,parameter=value] [format];
gzip 压缩等级。
buffer 设置内存缓存区大小。
flush 保存在缓存区中的最长时间。
2.error_log 指令
2.1 说明:error_log可以指定输出路径位置,实际项目中为了统一日志管理,不会使用默认的日志输出位置,会做相应修改。
2.2 默认格式:error_log logs/error.log;
2.3 语法格式: error_log file | stderr | syslog:server=address[,parameter=value] [debug | info |
notice |warn | error | crit | alert | emerg];
[parameter=value]
误日志级别:常见的错误日志级别有[debug | info | notice | warn | error | crit | alert | emerg],级别
越高记录的信息越少。
3.log_format 指令
3.1 说明,此指令在实际中用的比较多,也比较重要,基于运维人员,在查找问题时,如果此模块配置的详细,则很容易定位相关问题。基于默认格式,由于内容较少,多会修改此部分内容。
3.2 默认格式:
3.3 可使用的变量(有点多)
$remote_addr, $http_x_forwarded_for 记录客户端IP 地址
$remote_user 记录客户端用户名称
$request 记录请求的URL和HTTP协议
$status 记录请求状态
$body_bytes_sent 发送给客户端的字节数,不包括响应头的大小
$bytes_sent 发送给客户端的总字节数
$connection 连接的序列号
$connection_requests 当前通过一个连接获得的请求数量
$msec 日志写入时间。单位为秒,精度是毫秒
$pipe 如果请求是通过 HTTP 流水线(pipelined)发送, pipe 值为p,否则为.
$http_referer 记录从哪个页面链接访问过来的
$http_user_agent 记录客户端浏览器相关信息
$request_length 请求的长度(包括请求行,请求头和请求正文)
$request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止
$time_iso8601 ISO8601 标准格式下的本地时间
$time_local 通用日志格式下的本地时间
$upstream_cache_status 缓存形式
$upstream_response_time 模块响应时间
$upstream_addr 模块地址
3.4样例
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$upstream_cache_status" '
'"$upstream_http_content_type" $request_time $upstream_response_time $bytes_sent $request_length '
'"$upstream_addr" $cookie_tenantid "$cookie_yyuid"';
4.open_log_file_cache指令
说明 : 对于每一条日志记录,都将是先打开文件,再写入日志,然后关闭。可以使用 open_log_file_cache 来设置日志文件缓存。实际中用的较少。
默认(格式)值: open_log_file_cache off;
语法格式: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
样例:open_log_file_cache max=2000 inactive=15s valid=1m min_uses=2;
5. log_not_found 指令
说明:是否在 error_log 中记录不存在的错误
默认(格式)值: log_not_found on;
语法格式:log_not_found on | off;
6.log_subrequest 指令
说明: 是否在 access_log 中记录子请求的访问日志。默认不记录
默认值: log_subrequest off;
语法: log_subrequest on | off;
7.rewrite_log
说明:启用时将在 error log 中记录 notice 级别的重写日志。
默认值: rewrite_log off;
语法: rewrite_log on | off;