使用 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 并且浏览器缓存设置为高,您可能会遇到奇怪的行为。
假设我有一个变量,可以是 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 并且浏览器缓存设置为高,您可能会遇到奇怪的行为。