使用 Varnish 和 Magento 根据存储在 cookie 中的变量创建缓存

Create cache depending on a variable stored in cookie with Varnish and Magento

假设我有一个变量,可以是 1、2 或 3,它存储在用户 cookie 中。例如: foo=2

有人第一次访问 foo=2 的 pageX 时,该页面将被缓存。 所有下一个在其 cookie 中包含 foo=2 的访问者都将看到相同的版本(命中)。

第一次有人访问 foo=1 的 pageX 时,该页面将被缓存(作为第二个版本)。 所有下一个在其 cookie 中包含 foo=1 的访问者都将看到此特定版本(命中)。

原理同foo=3

换句话说,我网站的所有页面都会有 3 个版本,即使是相同的 URL,每个版本对应访问者 cookie 中的每个 foo 值。

这可行吗?

谢谢, 杆

我认为您正在寻找的答案可以在 varnish 文档中找到 https://www.varnish-cache.org/trac/wiki/VCLExampleCachingLoggedInUsers

关于如何使用 cookie 变量创建唯一哈希有一个很好的例子。

这也可用于为相同的 url 创建不同的页面。 小心页面的浏览器缓存设置。如果页面更改 url 并且浏览器缓存设置为高,您可能会遇到奇怪的行为。