如果数据是从 varnish 缓存提供给客户端的,它是否仍会在统计信息中被记录为命中(可能来自 nginx 日志或可能是 google 分析)?我相信如果 apc 不影响统计信息,因为它只缓存 PHP,其余内容仍然来自 nginx。同样,浏览器缓存呢?
答案1
我已经在 Stackoverflow 上回答过这个问题,因此我将我的答案复制到这里:
Quote:
嗯,是也不是,这取决于页面和清漆规则,以及具体计算什么,让我们尝试将它们分组
我们有像访问日志这样的后端计数器,还有像谷歌分析这样的前端计数器。
后端计数器:您需要一个请求来命中后端以实际记录命中,如果您获得一个总的 varnish 命中并且缓存完全由 varnish 缓存提供,那么后端甚至都不知道访问已经到来,并且您会得到令人困惑的数字,因为每个数字vcl_fetch
都会算一次命中但vcl_hit
实际上不会。
但是如果计数器存储在 varnish 的页面中,vcl_pass
那么该命中就会被记录下来,您不需要做任何特殊的事情,比如包含 cookie 的页面。
前端计数器:(例如 google analytics 和所有 javascript 分析库)这些计数器不应受到缓存的影响,因为分析代码仍然由缓存提供,并且计数发生在他们的服务器上,所以即使你的 nginx 服务器完全死机,而 varnish 正在从它的缓存中提供服务,你的计数仍然会正常计数而不会中断。
关于 WordPress 总缓存的 PS:老实说,我以前没有真正使用过它,而且我不知道它究竟是如何工作的,但我认为它会编译 HTML 页面以直接提供服务,而不是在每次点击时查询数据库,如果我们假设没有清漆,点击次数将计入访问日志,但如果您有某种在例如上运行的数据库计数器,article.php
那么您可能会遇到问题,因为该文件可能不会在每次新的点击出现时运行,因此如果您使用 php 来计算点击次数,则需要仔细检查。
答案2
由于它是基于客户端 javascript 的,因此它将被注册为 Google 分析中的 HIT,但不会在后端统计信息或日志中被注意到。