码迷,mamicode.com
首页 > 其他好文 > 详细

nginx之日志格式

时间:2016-06-12 18:47:31      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:nginx   日志   模块   linux   

nginx的ngx_http_log_module模块是用来定义请求日志格式(编译时添加)

配置段: http

常用log_format指令:


$remote_addr, $http_x_forwarded_for 记录客户端IP地址
$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
请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止
$upstream_response_time 
Nginx向后端(php-cgi)建立连接开始到接受完数据然后关闭连接为止的时间

$time_iso8601 ISO8601标准格式下的本地时间
$time_local   
通用日志格式下的本地时间


上面提到了两个时间:upstream_response_timerequest_time


下面介绍下2者的差别:


1、request_time


    指的就是从接受用户请求的第一个字节到发送完响应数据的时间,即包括接收请求数据时间、程序响应时间、输出响应数据时间。


2、upstream_response_time


    是指从Nginx向后端(php-cgi)建立连接开始到接受完数据然后关闭连接为止的时间。

所以$request_time肯定比$upstream_response_time值大,特别是使用POST方式传递参数时,因为Nginx会把request body缓存住,接受完毕后才会把数据一起发给后端。所以如果用户网络较差,或者传递数据较大时,$request_time会比$upstream_response_time大很多。

所以如果使用nginx的accesslog查看php程序中哪些接口比较慢的话,记得在log_format中加入$upstream_response_time。



本文出自 “愤怒的小甲鱼” 博客,请务必保留此出处http://qjslovemsn.blog.51cto.com/10615974/1788367

nginx之日志格式

标签:nginx   日志   模块   linux   

原文地址:http://qjslovemsn.blog.51cto.com/10615974/1788367

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!