我有一个集成了 Wordpress 和 PHPBB 的网站 - 几个月来一直很好。然后突然之间,加载速度慢得令人难以置信。
apache 日志中没有错误,但在 firebug 中查看页面显示在页面交付之前有 20 秒的暂停。
更令人困惑的是,在同一台服务器上,同样的 apache 安装,PHPBB 在 30 毫秒内加载,没有延迟。
我尝试了 hogdetector wordpress 插件,它表明延迟是在发送标头之前 - 这似乎与 firebug 一致。
任何想法如何进一步解决这个问题?
可能是DNS查找问题!检查 DNS 配置。
如果您让它在 Linux(或类似 Linux 的环境)上运行,请在发出请求时尝试在其上运行数据包嗅探器,看看它要求什么并暂停。像 tcpdump 或 wireshark 之类的东西。运行它,请求一些页面,看看结果是什么。如果是 DNS 问题,它应该会出现在那里。如果网络正常,那么您接下来需要开始检查安装的本地问题。
您的 WP 插件之一可能有问题。尝试一一禁用它们并查看导致问题的原因。
我观察到(tcpdump)当 WordPress 尝试从服务器端加载外部内容时,它可能会在失败时重试 3 次,每次尝试之间等待约 5 秒。如果外部数据永久不可用,那是 15 秒的系统延迟;通过进一步的 WordPress 页面处理,您可以像我一样在 Firefox 中获得 20 秒的响应时间。
我在使用 youtube 插件时遇到了这个问题,该插件试图直接从服务器加载来自 youtube.com 的内容。我的设置中的 DNS 解析是正常的,但是防火墙正在向 WordPress 连接尝试发送 TCP RESET。
我通过禁用外部内容的服务器端加载来解决这个问题(对您来说可能是正确的方法,也可能不是正确的方法),并使用以下指令
wp-config.php
:define('WP_HTTP_BLOCK_EXTERNAL', true);
有一个用于细粒度控制的补充指令:
define('WP_ACCESSIBLE_HOSTS', 'example1.com, example2.com');
博客很慢,但 BBS 很好,真的很奇怪。如果可能的话,使用服务器上的浏览器(基于文本的?)或类似 wget 的东西。如果本地性能正确,我唯一能想到的就是代理问题。当然,如果本地性能很差,那么至少您知道它在服务器上。