我有一个 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 提示。