在Nginx的access_log中logging请求/响应的大小

我需要在access_log中logging请求/响应大小(body + headers)。 任何想法如何在nginx中做到这一点? 在Apache中,我们可以使用%I ..%O …

我会在nginx.conf中使用这两个参数:

log_format perf'$ remote_addr $ status – $ request_length $ bytes_sent'

根据文档( http://wiki.nginx.org/HttpLogModule)$ $request_length只是请求的主体,但我已经证实,它包括所有的头(我有一些GET请求与许多cookies有超过总共1400字节)。 $bytes_sent是发送给客户端的总字节数(而不是与apache%B兼容的$body_sent )。

取自ngx_http_log_module :

$bytes_sent :发送给客户端的字节数

$connection :连接序列号

$connection_requests :通过连接进行的当前请求数(1.1.18)

$msec :日志写入时的时间,以毫秒为单位

$pipe :如果请求是stream水线,则为“p”,否则为“。”

$request_length :请求长度(包括请求行,标题和请求正文)

$request_time :以毫秒为单位的请求处理时间,以秒为单位; 从客户端读取第一个字节之间的时间,并在最后一个字节发送到客户端后写入日志

$status :响应状态

$time_iso8601 :ISO 8601标准格式的本地时间

$time_local :通用日志格式的本地时间