哪些WordPress页面/URL永远不应该缓存?

时间:2012-12-05 作者:Kai

我有一个多站点博客,很快就会有一个Akamai缓存服务,为访问者提供缓存内容(15分钟TTL)。

我想将Akamai配置为排除任何不应缓存的重要URL(即,不想为缓存的登录/管理页面提供服务)。是否有任何不应缓存的重要URL的汇编或一般建议?以下是我目前掌握的情况:

  • /wp-* (这将阻止wp包括/管理员/等)
  • /xmlrpc.php
  • 任何带有的URL?preview=true 以便编辑可以预览

    Edit: Additional info below

    我们正在使用Akamai edge cachefull site caching. 基本上,Akamai充当反向代理服务器。我们的DNS指向Akamai,访问者直接访问Akamai。Akamai仅在TTL过期时或请求尚未缓存的页面时才联系我们更新页面。

    我们可以将网站的部分内容从完全缓存中排除,例如URL匹配wp-*, 或任何带有查询字符串的URLpreview=true. 排除允许通过cookie;还允许POST请求。

    有了这些额外的信息,最初的问题仍然存在——需要从full-site caching 防止东西破裂?E、 很明显,预览本质上需要动态,所以我通过允许preview=true 查询字符串。我还需要排除什么?有匹配的吗wp-* 足够好,或者缺少其他东西,例如。/xmlrpc.php?

    我希望事情能为最初的问题带来一些额外的背景。

3 个回复
最合适的回答,由SO网友:Wyck 整理而成

您不应该在管理中缓存任何内容,这样您的示例才是正确的。

典型的nginx反向代理缓存设置为忽略wp\\-.*\\.php|wp\\-admin

另一种选择是不通过检查wp cookie来缓存登录的用户,但您可能没有那种级别的控制。

另外,非常建议您在拨动开关之前进行测试。

tl;dr您应该可以正常安装。

SO网友:developdaly

我认为Akamai实际上不会缓存整个页面。任何公开可用的静态资源都可以缓存,并且不会影响站点的功能——即使它位于登录页面或仪表板上。

所以你不需要做任何阻塞。

对于W3 Total Cache之类的东西来说,情况并非如此,但只要不向登录用户提供缓存文件或排除特定主题或插件文件,就可以解决这一问题。

SO网友:Mark Kaplun

您正在使用akamai作为web缓存服务器,因此如果您在wordpress中查找有关使用squid(一种流行的web缓存工具)的提示,可能会有所帮助。

缓存的问题是,您不希望缓存为特定用户定制的HTML,在使用符合标准的web缓存时,正确的方法是将http“Cache Control”标头设置为“no Cache,must revalidate,max age=0”,这正是wordpress在用户登录时发送的内容,因此,不进行任何配置,您实际上可能就可以了。

如果您能够通过cookie排除,那么您可能应该在设置登录cookie时添加保护和排除(不记得确切的名称),如果您启用了注释,则应该为注释者cookie添加相同的保护和排除,以便注释者在提交注释后能够看到自己的注释。

如果在此之后您仍然想排除特定文件,那么只对php文件执行此操作,因为您希望对/wp inculde下的js、css和图像进行CDNed。可能只是排除除/index之外的所有php文件。php

结束

相关推荐

如何手动清除Memcached WordPress站点选项?

重新启动memcache节点后,我只在根博客上收到一个错误,来自wp includes/ms设置的错误日志消息很明显。php。[Thu Jul 07 18:55:27 2011] [error] [client 12.34.56.78] PHP Warning: Attempt to assign property of non-object in /var/www/domain.php/wp-includes/ms-settings.php on line 114 从该文件中转储$curre