当前位置:首页 >> 技术教程 >> 如何在 Apache 中记录请求处理时间?

如何在 Apache 中记录请求处理时间?

卡卷网 技术教程 326

如何在 Apache 中记录请求处理时间?  第1张


如果你有一个 apache (2) web 服务器,你可能有一个 access.log 文件,它使用 “combined” 日志格式向你显示各种数据。让我们看看如何将处理时间包含到该日志文件中。

默认情况下,组合日志中的一行如下所示:

"GET /info-tech/ HTTP/1.1" 200 46482 "http://fplanque.com/info-tech/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5"


请注意 IP 后面的 2 个短划线 - -。第一个选项表示“I could not identify the user using ident”,第二个选项表示“未执行用户身份验证”。

现在,让我们面对现实吧:你永远不会使用 ident 识别任何人。你的 apache conf 甚至可能不会尝试。那块田地是远古遗留下来的。因此,让我们用有用的东西替换第一个破折号,即:请求的处理时间!请注意,通过这样做,我们可以保持文件的全局结构相同,并且您可能正在使用的任何日志处理工具都不会受到影响。

因此,在您的 apache2.conf 文件中,查找以下行:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined


并将其替换为:

LogFormat "%h %D %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined


(更具体地说,我们将第二个字段从 %l 更改为 %D)

现在,重新启动 apache 并查看您的日志!您的日志行现在应如下所示:

"GET /info-tech/ HTTP/1.1" 200 46482 "http://fplanque.com/info-tech/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5"


96395 是以微秒为单位的时间。换句话说,处理请求需要 96 毫秒。请注意,根据 Apache 的 Send Buffer 是否填满,这可能包括将数据发送回请求方所需的时间,因此这在很大程度上取决于请求方的位置、缓冲区大小、使用的路由、MTU 大小、TCP 窗口大小等......

如果您通过不同的代理请求相同的 URL 并查看日志,则可能会看到重大变化。

快速提示:执行此操作时过滤日志的一种方法:

tail -f /some_path/access.log | grep "GET /info-tech/ HTTP"



协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。
最新文章
热门文章
随机文章