我在 Centos 上安装了 Apache 2,并绑定了一个 wordpress 网站(例如 example.com)。我还在另一个国家/地区的服务器上为其设置了一个负载均衡器(varnish:80 + nginx 127.0.0.1:8080),其任务是为 /wp-content/ 下的所有静态内容提供服务。
使用简单 DNS 编辑器,我向 cdn.example.com 添加了一个指向服务器 IP 的 A 条目。因此无需从第二个 DNS 服务器进行额外工作。
然后使用 htaccess 将所有对 jpg|gif|css|js 文件的请求重定向到 cdn.example.com。这样就成功了,所有文件都保存在“cdn”服务器上并立即提供服务。
我的问题是,第一次进入 example.com 时(例如重新启动计算机或关闭浏览器后),加载时间为 1 到 3 秒,而任何后续页面加载仅需 300 到 600 毫秒。
我知道这可能是 DNS 问题,但我已经对几个网站进行了缓存检查,cdn.example.com 指示了正确的 IP。
您知道我应该从哪里着手解决这种首次出现的速度缓慢的问题吗?
稍后编辑:
我制作了一个静态版本的 index.php (.htm),并对其进行了一些测试。我发现了一些有趣的事情:一些图片加载速度非常慢。
正如我在 Google 开发者工具中看到的:Waiting _ _ _ _ _ _ 3.04s
。这不太好,也许 Varnish 遇到了一些问题...
答案1
您应该使用 Chrome 中的开发者工具之类的工具来查看页面加载的哪些部分最耗时。是初始响应,还是 JavaScript、CSS、图像等的所有后续查询。
如果是初始响应缓慢,那么这是 Wordpress 的问题,CDN 也无能为力。如果是其他原因,那么您需要再次查看 CDN 的运行情况。
如果您担心 DNS 存在问题,请尝试对 DNS 响应时间进行基准测试。务必将您用于基准测试的任何客户端指向您的权威服务器,这样您就不会看到缓存的响应。
很有可能是 wordpress 运行缓慢,在这种情况下,您可能需要删除插件,或者获取更好的硬件。