无法配置清漆以使用cookie和drupal模块

时间:2012-01-24 16:49:19

标签: drupal-7 varnish varnish-vcl

我正在使用Cookie,以便移动用户可以作为桌面用户访问我的网站。为此,我给他们一个cookie - mob_yes。

然后,在一个模块中,我使用drupal钩子来查看cookie是否已设置。

我可以看到cookie已经设置好了,但在我的模块中(isset($ _ COOKIE [“mob_yes”]))在使用清漆时总是返回false。

在/etc/varnish/default.vlc我有以下内容:

if (req.http.Cookie) {
set req.http.Cookie = regsuball(req.http.Cookie, ";(mob_yes)=", "; \1=");

我真的不确定这里发生了什么,但我只是假设清漆暂时没有解开那个饼干?有谁知道这里出了什么问题?

谢谢,

1 个答案:

答案 0 :(得分:0)

是什么意思

  

我可以看到cookie已经设置

你的意思是你可以在firebug(客户端)的头文件中看到它,然后你在服务器端用tcpdump / varnishlog / application(服务器端)看到它?

来自vcl的

代码片段可能是通过在它们前面添加空格来保留重要cookie的常用方法的一部分,删除所有没有“; [space]”组合并在末尾删除空格。 稍后将使用它为特定的url + cookie请求生成哈希值。

我认为如果用户没有登录,你应该检查你的vcl是否没有删除任何cookie - 这是增加命中率的常见做法。

通常在vcl中用于drupal它是检查DRUPAL_UID

的部分