即使存在 cookie,我也想使用 Varnish 缓存某些页面。我需要注意 3 种可能性:
- 匿名用户正在查看某个页面
- 登录的用户正在查看一些带有轻度自定义的页面。这些自定义项都存储在签名 cookie 中,并由 Javascript 动态填充。未设置 vary-cookie http 标头。
- 登录的用户正在查看一些包含数据库中自定义数据的页面。设置了 vary-cookie http 标头。
预期的行为将是:
- 缓存页面。这是 Varnish 处理的最基本的场景。
- 缓存页面,不要删除 cookie,因为某些 Javascript 逻辑需要它。
- 永远不要缓存这个页面,因为 vary-cookie 表明 cookie 的内容会影响这个页面的输出。
我已经阅读了一些关于 Varnish 的文档,但我无法判断这是默认行为还是我必须在 VCL 中进行一些设置才能实现它。