不一样用户防卫Nginx会把每一个用户访问往咱的日志信息记录到指定的日志文件里,供网站管理员分析用户浏览行为等,此功能又ngx_http_log_module 模块负责。前端
控制访问日志的参数nginx
参数 | 说明 |
---|---|
log_format | 经过不一样的名称来定义日志的输出格式,能够定义多个 |
access_log | 用来指定日志保存的路径和使用的输出格式 |
记录nginx处理的请求的过程,包含请求类型、时间、客户端信息、处理结果、处理时长等信息,具体能够经过log_format指令引用特定变量来记录相关信息。web
记录nginx进程启动、中止、重启及处理请求过程当中发生的错误信息。算法
记录rewrite规则工做的过程,能够用于调试rewrite规则。apache
nginx中能够记录的日志主要有access日志、error日志和rewrite日志。前两种由ngx_http_log_module模块予以支持,rewrite日志则由ngx_http_rewrite_module模块提供,这两个模块默认都已包含且启用。浏览器
# 定义一个日志的输出格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"'; # 指定日志的报错位置和指定日志的输出格式为上面定义的格式(main为上面定义的日志标签) access_log logs/access.log main;
log_format [name [string]; name表示格式名称,string表示等义的格式。log_format有一个默认的无需设置的combined日志格式,至关于apache的combined日志格式。 log_format格式变量: $http_referer # 记录这次请求是从哪一个链接访问过来的,能够根据该参数进行防盗链设置。 $http_user_agent # 记录客户端访问信息,例如:浏览器、手机客户端等 $remote_addr # 记录客户端IP地址 $http_x_forwarded_for # 当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置 $remote_user # 记录客户端用户名称 $request # 记录请求的URL和HTTP协议 $status # 记录请求状态 $body_bytes_sent # 发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。 $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 # 通用日志格式下的本地时间。
access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]]; 做用域 : http, server, location, if in location, limit_except 其余参数说明 access_log off; #关闭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]]; 说明: buffer=size # 为存放访问日志的缓冲区大小 flush=time # 为缓冲区的日志刷到磁盘的时间 zip[=level] # 表示压缩级别 [if = condition] # 表示其余条件
语法格式: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time]; 使用open_log_file_cache来设置日志文件缓存(默认是off)。 默认值: open_log_file_cache off; 做用于: http, server, location 对于每一条日志记录,都将是先打开文件,再写入日志,而后关闭。可使用open_log_file_cache来设置日志文件缓存(默认是off),格式以下: 参数注释以下: max # 设置缓存中的最大文件描述符数量,若是缓存被占满,采用LRU算法将描述符关闭。 inactive # 设置存活时间,默认是10s min_uses # 设置在inactive时间段内,日志文件最少使用多少次后,该日志文件描述符记入缓存中,默认是1次 valid # 设置检查频率,默认60s off # 禁用缓存