【问题标题】:Can't configure varnish to work with cookies and drupal module无法将 varnish 配置为与 cookie 和 drupal 模块一起使用
【发布时间】:2012-02-17 22:16:03
【问题描述】:

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

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

我可以看到 cookie 正在设置,但在我的模块中 (isset($_COOKIE["mob_yes"])) 使用 varnish 时总是返回 false。

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

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

我真的不确定这里发生了什么,但我只是假设 varnish 不会暂时取消设置该 cookie?有谁知道这里出了什么问题?

谢谢,

【问题讨论】:

  • 您需要指定粘贴代码的位置。它属于 vcl_recv、vcl_hash、vcl_hit 还是 vcl_fetch ?

标签: drupal-7 varnish varnish-vcl


【解决方案1】:

什么意思

我可以看到 cookie 正在设置中

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

vcl 中的代码 sn-p 可能是保留重要 cookie 的常用方法的一部分,方法是在它们前面添加一个空格,删除所有没有 ";[space]" 组合并在末尾删除空格。 稍后用于为特定的 url+cookies 请求生成哈希。

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

通常在 vcl 中用于 drupal,它是检查 DRUPAL_UID 的部分

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 2022-12-13
    • 2015-09-06
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多