首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清漆3.0和Drupal 7,使注册用户始终具有非缓存的内容。

清漆3.0和Drupal 7,使注册用户始终具有非缓存的内容。
EN

Drupal用户
提问于 2013-01-14 23:17:51
回答 2查看 361关注 0票数 0

我在Drupal 7上有争议,详见:http://drupal.org/node/1886218

基本上,所发生的是:

  1. 用户以匿名身份访问某个页面,获取由Varnish提供的内容(OK)
  2. 登录
  3. 单击他以前以匿名方式查看的页面的链接,但是他会得到缓存的页面,而不是特定于用户的页面(不应该发生这种情况)。
  4. 如果他重新加载页面(f5),他会得到后端服务页面,但是如果他点击菜单上的链接,就会得到缓存的页面。

事实证明,缓存的页面是通过浏览器传递的,而不是由Varnish交付的;无论如何,这种情况不应该发生,因为用户认为自己已被注销(我的头中有特定于用户的块)。

我如何能够在头文件中提供这样的缓存控制,所以注册用户总是得到更新(而不是缓存)内容,即使他们在登录之前以匿名身份浏览站点?

谢谢你帮忙!

HTTP回复:

代码语言:javascript
复制
The url we checked: www.mydomain.com
    HTTP/1.1 200 OK
Server: Apache (removed from security)
X-Powered-By:   PHP(removed from security)
X-Drupal-Cache: MISS
Expires:    Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified:  Tue, 15 Jan 2013 08:38:54 +0000
Cache-Control:  public, max-age=10800
ETag:   "1358239134-1"
Content-Language:   hr
X-Generator:    Drupal 7 (http://drupal.org)
Link:   <http://www.mydomain.com/>; rel="canonical",<http://www.mydomain.com/>; rel="shortlink"
Vary:   Accept-Encoding
Content-Encoding:   gzip
Content-Type:   text/html; charset=utf-8
Content-Length: 33254
Accept-Ranges:  bytes
Date:   Tue, 15 Jan 2013 08:49:22 GMT
X-Varnish:  1420616326 1420614128
Age:    622
Via:    1.1 varnish
Connection: keep-alive
X-Varnish-Cache:    HIT
EN

回答 2

Drupal用户

发布于 2013-10-01 19:51:31

除了Vary: Cookie之外,您似乎还缺少Vary: Accept-Encoding。您可以使用以下内容在vcl_deliver中添加它:

代码语言:javascript
复制
if (resp.http.Vary !~ "Cookie") {
    set resp.http.Vary = resp.http.Vary + ", Cookie";
    set resp.http.Vary = regsub(resp.http.Vary, "^,\s*", "");
}
票数 1
EN

Drupal用户

发布于 2013-01-15 10:06:55

尝试更改响应缓存-控制头:

代码语言:javascript
复制
Cache-Control:no-cache, max-age=0, must-revalidate
票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/56825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档