我在Drupal 7上有争议,详见:http://drupal.org/node/1886218
基本上,所发生的是:
事实证明,缓存的页面是通过浏览器传递的,而不是由Varnish交付的;无论如何,这种情况不应该发生,因为用户认为自己已被注销(我的头中有特定于用户的块)。
我如何能够在头文件中提供这样的缓存控制,所以注册用户总是得到更新(而不是缓存)内容,即使他们在登录之前以匿名身份浏览站点?
谢谢你帮忙!
HTTP回复:
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发布于 2013-10-01 19:51:31
除了Vary: Cookie之外,您似乎还缺少Vary: Accept-Encoding。您可以使用以下内容在vcl_deliver中添加它:
if (resp.http.Vary !~ "Cookie") {
set resp.http.Vary = resp.http.Vary + ", Cookie";
set resp.http.Vary = regsub(resp.http.Vary, "^,\s*", "");
}发布于 2013-01-15 10:06:55
尝试更改响应缓存-控制头:
Cache-Control:no-cache, max-age=0, must-revalidatehttps://drupal.stackexchange.com/questions/56825
复制相似问题