Nginx、awstats 和请求时间

Nginx、awstats 和请求时间

我如何调整 nginx 以将请求时间写入日志,以便 awstats 可以显示每个请求所花费的时间?

另外,我如何才能在 awstats 中查看按时间排序的请求?

这是当前格式

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

答案1

正如@Vladimir提到的,要记录请求时间,请log_format按如下方式编辑您的指令:

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"'
                      ' $request_time';

并在配置文件LogFormat中设置相应的变量:awstats

LogFormat="%host %other %host_r %time1 %methodurl %code %bytesd %refererquot %uaquot %other %extra1"

以下是extra1部分示例:

ExtraSectionName1="Time to serve requests (seconds)"
ExtraSectionCodeFilter1=""
ExtraSectionFirstColumnTitle1="Number of seconds to serve the request"
ExtraSectionFirstColumnValues1="extra1,(.*)"
ExtraSectionStatTypes1="H"

建筑报告:

awstats.pl -config=model -output -staticlinks > awstats.localhost.html

在此处输入图片描述

答案2

您可以使用$请求时间变量,如指定这里,例如:

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent $request_time "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for"';

编辑:哎呀,我漏掉了你的第二个问题。你可以统计使用以下方式解析新格式日志格式指令额外数变量,然后使用附加部分显示结果。

相关内容