当前位置:首页 > 技术教程 > 正文内容

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

卡卷网1年前 (2024-09-09)技术教程355

如何在 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"



扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/jiaocheng/2024/09/198.html

分享给朋友:

相关文章

PHP宝塔安装Swoole Loader扩展教程:适用于Windows和Linux,保障网站安全

PHP宝塔安装Swoole Loader扩展教程:适用于Windows和Linux,保障网站安全

PHP宝塔安装Swoole Loader扩展教程方法,适用于Windows和Linux。有的网站wordpress主题出于安全考虑或授权解决方案,会对php程序源代码增加swoole_loader扩展加密。如RiPro主题模板需要Swool...

帝国网站管理系统(EmpireCMS)帝国cms管理采集节点教程

帝国网站管理系统(EmpireCMS)帝国cms管理采集节点教程

管理采集节点1、登录后台,单击“栏目”菜单,选择“管理采集节点”子菜单,进入管理采集节点界面:2、进入管理采集节点界面,如下图:[开始采集]    点击开始采集可对某一节点进行采集操作。[预览]节点 ...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。