我在没有运气的情况下挠了头2天。我用Pressflow 6(Drupal)配置了Varnish 3,一切都很好,即Varnish正在缓存页面。现在痛苦是Varnish甚至在登录后缓存。因此,当我注销时,我仍然会看到您已登录消息等。
我尝试在登录modules / user / user.module文件时设置一个唯一的cookie,并修改/etc/varnish/default.vcl文件,添加以下块。
if (req.http.Cookie ~ "(MY_UNIQUE_COOKIE)") {
return (pass);
}
现在一切正常,但在注销脚本中,我无法通过PHP完全删除cookie,即将时间设置为减去。我相信浏览器关闭/重启后实际的cookie会消失。
所以现在开始,如果我不关闭浏览器,那么cookie就在那里,Varnish总是将每个页面发送到Apache Backend。
任何帮助都将受到高度赞赏。
此致
Raheel
答案 0 :(得分:0)
“drupal pressflow varnish”的前三个谷歌搜索结果是黄金。 2发布,因为我显然没有足够的代表,但osuosl博客文章真的很好,如果可能有点过时
此外,您永远不应该修改Drupal的核心代码。它会让你的生活升级变得悲惨,任何你想要做的事情几乎可以肯定地用积分点来管理,也许是一个小小的聪明才智
最后,正如您将在链接文章中注意到的那样,没有理由设置自己的cookie,因为Pressflow和Drupal 7+已经优化了会话创建,因此会话cookie已经提供了您正在寻找的功能。
答案 1 :(得分:0)
我知道这是一个老问题,但我想我可以就此提供一些意见。
我还不知道Varnish的语法,但是在注销时你可以将cookie的值设置为空。然后你可以从VCL的标题中删除所有空的cookie。这将使清漆按照您的意图行事。