2

我在专用服务器上运行清漆。当我加载一个页面时,它通过 Apache 传递,然后在第二次和后续命中时通过 Varnish Cache 传递(即我可以在 X-Varnish 标头中看到两个时间戳)。

但是,当我从其他计算机打开同一页面时,它又是第一次从后端(apache)交付,并且在进一步重新加载时它来自 Varnish。

如果一个页面已经在 Varnish Cache 中,那么即使是第一次在新计算机上,它也不应该通过 Varnish 传递吗?我尝试了简单的 hello world php 文件,没有任何数据库调用,效果相同。我的 vcl 文件可能有问题,或者 Varnish 只能以这种方式工作吗?

4

2 回答 2

1

检查您是否发送会话数据(cookie),然后看起来像是对清漆的独特调用。文档向您展示了如何去除 cookie。

于 2011-09-15T10:33:59.210 回答
1

乔恩是对的。我有类似的问题。您还需要在测试前清理 cookie 和缓存。检查是否第一次访问响应头,它会尝试设置cookie。如果是这样,您可以在 vcl_fetch 下执行“取消设置 beresp.http.Set-Cookie”。

于 2012-03-07T14:04:21.773 回答