服务器在 120 秒后做出响应 - 如何找到延迟原因?

服务器在 120 秒后做出响应 - 如何找到延迟原因?

我有一个 WordPress 网站,前端运行良好,但后端管理页面需要 120 多秒才能加载。页面没有超时 - 服务器响应 - 只是需要很长时间。我在 PHP 或 apache 日志中没有看到任何错误。

显然 120 秒是一个线索 - 我在想一个 CURL 请求或类似的东西。

我已经使用 mod_status 来查看服务器状态 - 我可以看到一个在长页面加载期间保持“W”状态(发送回复)的进程。

显然,WordPress 页面处理要经过许多 PHP 脚本——我如何找出延迟发生的位置?

我尝试过各种强力方法,逐一禁用插件,但即使将所有方法都删减,问题仍然存在。

谢谢。

编辑:

运行 netstat 似乎证实这是一个类似 curl 的问题;

# netstat --tcp
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 myip:http                   12-34-56-78.dsl:56446       ESTABLISHED
tcp        0      1 myip:35595                  87.65.43.21:http            SYN_SENT

第 1 个条目是发出页面请求的我的 IP,第 2 个条目是服务器的 IP - 请求未通过防火墙。我无法控制防火墙,因此我需要找到此请求在代码库中的来源位置。

答案1

和通常的情况一样,这个问题的答案最终非常简单。运行 netstat 确认 http 请求是延迟的原因,当我发现它是对服务器 IP 本身的请求时,我意识到它没有通过防火墙。因此,我使用 WordPress 站点的域和机器的内部 IP 编辑了 hosts 文件...

10.0.0.1    thewordpresssite.mydomain.com

现在,请求就可以被正确路由,而不会违反防火墙。

感谢 Marc B 提供的 netstat 提示。

相关内容