目录
ngx的访问日志access.log
access_log指令的作用域
http, server ,location
access_log 使用格式
access_log 设定日志路径 日志标志名;
access_log 日志内容的配置
log_format 日志标志名 自定义日志内容 ;
例:
日志内容中的变量
$remote_addr | 客户端的ip |
$status | 状态码 200,404,301,302 |
$request | 相当于 $request_method + $host + $request_uri |
$http_user_agent | 用户浏览器标识,客户端的信息(PC,移动端,系统版本等) |
$host | 相当于$http_host,请求的url地址的host |
$http_referer | 来源页面,即从哪个页面转到本页的,如果直接在浏览器输入网址访问来的,则为空。 比如从A页面上点击连接跳到B页面,则会记录下A页面的地址。 |
$uri | 请求中的当前URI(不带参数部分)。 不同于浏览器中传递的$request_uri ,$uri可以通过内部重定向,或者用index指令修改 |
$document_uri | 等同于$uri |
$request_uri | 比$uri多了参数部分 $args |
$http_x_forwarded_for | 如果使用了代理,这个参数会记录代理服务器的ip和客户端的ip。 一般大部分情况都会使用代理,或者CDN什么的,所以这个才会记下真实的访问来源。 |
$bytes_sent | 发送给客户端的总字节数。 |
$body_bytes_sent | 发送给客户端的字节数。 不包含响应头大小。 |
$time_local | 通用格式下的当前时间 |
$time_iso8601 | 标准格式的当前时间 |
$request_length | 请求长度(请求行+请求头+请求体) |
默认的access.log 的格式 ( combined )
nginx默认是开启了access.log的,如果没有设定log_format 也将会是如下默认的combined格式,默认格式可以不用写出来该模式名字。
实例
可以在多个位置配同一个日志文件路径,这样多个地方触发都会追加记入同一个日志文件中。
如下,在2个域名访问都会记入同一个日志文件。
这里配合map 对40*的请求不计入access.log ,且日志文件以
的方式进行命名。