nginx日志打印呼应时刻requestITeye - 众发娱乐

nginx日志打印呼应时刻requestITeye

2019年04月04日15时41分00秒 | 作者: 德明 | 标签: 时刻,呼应,数据 | 浏览: 2162

设置log_format,增加request_time,$upstream_response_time,方位随意

og_format  main  "$request_time" "$upstream_response_time" $remote_addr - $remote_user [$time_local] "$request"

                      $status $body_bytes_sent "$http_referer"

                      "$http_user_agent" "$http_x_forwarded_for";

 

日志输出作用:

"0.015" "0.015" 10.1.2.3 - - [20/Mar/2017:04:05:49 +0800] "GET /myApp/servlet/TestServlet HTTP/1.1" 200 52 "-" "Mozilla/4.0 (compatible; MSIE 4.0; Windows NT)" "-"

 

-

 

笔者在依据nginx的accesslog中$request_time进行程序优化时,发现有个接口,直接回来数据,均匀的$request_time也比较大。本来$request_time包含了用户数据接纳时刻,而真实程序的呼应时刻应该用$upstream_response_time。

 

下面介绍下2者的不同:

 

1、request_time

官网描绘:request processing time in seconds with a milliseconds resolution; time elapsed between the first bytes were read from the client and the log write after the last bytes were sent to the client 。

指的便是从承受用户恳求的第一个字节到发送完呼应数据的时刻,即包含接纳恳求数据时刻、程序呼应时刻、输出

呼应数据时刻。

 

2、upstream_response_time

官网描绘:keeps times of responses obtained from upstream servers; times are kept in seconds with a milliseconds resolution. Several response times are separated by commas and colons like addresses in the $upstream_addr variable

 

是指从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。

 

参阅:

nginx优化之request_time 和upstream_response_time不同

http://wuzhangshu927.blog.163.com/blog/static/114224687201310674652147/

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表众发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章