Nginx 预设 log_format 就有支持这个参数,只需要另外设定打开,详细可见:Module ngx_http_log_module
Nginx 记录每个 request 花费时间的设定方式如下:
预设 log_format combined 的格式 (不可使用 combined,预设无法覆盖),预设 combined 的格式如下:
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent ' '"$http_referer"
"$http_user_agent"' '
需使用另外一个名字,combinedtime 来加入时间参数(名字可自取)
log_format combinedtime '$remote_addr - $remote_user
[$time_local] ' '"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"' ' elapsed=${request_time}s';
加入后,于每个使用到的 access_log 指定,如下范例:
access_log /var/log/nginx/access.log combinedtime;
设定好后,重新启动 Nginx 即可。
注意:
apache 的 elapsed 是 us
nginx 的 elapsed 是 s
下述摘录自此篇:nginx日志配置
$remote_addr, $http_x_forwarded_for 记录客户端 IP
$remote_user 记录客户端用户名称
$request 记录请求的 URL 和 HTTP Protocol
$status 记录请求状态
$body_bytes_sent 发送给客户端的 Bytes,不包括 Header 的大小;该变数与 Apache mod_log_config 的 "%B" 相容
$bytes_sent 发送给客户端的 总Bytes数
$connection 连接的序列号
$connection_requests 当前通过一个连接获得的请求数量
$msec 日志写入时间。单位为秒,精度是毫秒
$pipe 如果请求是通过HTTP流水线(pipelined)发送,pipe值为"p",否则为"."
$http_referer 记录从哪个页面链接访问过来的
$http_user_agent 记录客户端浏览器相关信息
$request_length 请求的长度(包括请求行,请求头和请求正文)
$request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个位元组开始,直到把最后一个字元发送给客户端后进行日志写入为止
$time_iso8601 ISO8601标准格式下的本地时间
$time_local 通用日志格式下的本地时间
来源:Tsung's Blog
原文:http://t.cn/Rf6tTFl
题图:来自谷歌图片搜索
版权:本文版权归原作者所有