2

我挠头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 后端。

任何帮助将不胜感激。

问候,

拉赫尔

4

2 回答 2

0

我知道这是一个老问题,但我想我可以就此提供一些意见。

我还不知道 Varnish 的语法,但是在注销时你可以将 cookie 的值设置为空。然后,您可以从 VCL 的标头中删除所有空 cookie。这将使清漆按照您想要的方式运行。

于 2012-08-29T16:28:42.033 回答
0

“drupal pressflow varnish”的前 3 个 Google 结果是金。2 发布是因为我显然没有足够的代表,但 osuosl 博客文章真的很好,如果可能有点过时

  1. http://www.lullabot.com/articles/varnish-multiple-web-servers-drupal
  2. https://wiki.fourkitchens.com/display/PF/Configure+Varnish+for+Pressflow

此外,您永远不应该修改 Drupal 的核心代码。它会让你的生活升级变得痛苦,任何你想做的事情几乎肯定可以通过集成点来管理,也许还有一点点独创性

最后,正如您将在链接文章中注意到的那样,没有理由设置您自己的 cookie,因为 Pressflow 和 Drupal 7+ 已经优化了会话创建,因此会话 cookie 已经提供了您正在寻找的功能。

于 2012-02-02T15:44:04.600 回答