我在一台专用服务器上运行varnish。当我加载一个页面时,它是通过Apache传递的,在第二次或以后的点击时,它会通过Varnish缓存传递(即我可以在X-Varnish头中看到两个时间戳)。
但是,当我从其他计算机打开同一页面时,它又是第一次从后端(apache)传递的,在进一步重新加载时,它来自Varnish。
如果一个页面已经在Varnish缓存中,那么它不是应该通过Varnish传递吗?即使是在一台新计算机上也是如此?我已经尝试过简单的hello world php文件,没有任何同样效果的数据库调用。可能是我的vcl文件有问题,或者Varnish只能以这种方式工作?
发布于 2011-09-15 18:33:59
检查您是否发送了会话数据(Cookie),这些数据看起来像是对varnish的唯一调用。文档向您展示了如何剥离cookie。
发布于 2012-03-07 22:04:22
乔恩是对的。我也遇到过类似的问题。你还需要在测试前清理你的cookie和缓存。检查第一个访问响应头,它会尝试设置cookie。如果是这样,你可以在vcl_fetch下做"unset beresp.http.Set-Cookie“。
https://stackoverflow.com/questions/7427494
复制相似问题