各位 serverfault 用户,大家好,
我想请人帮助我为 magento 配置 varnish。
使用命令:varnishtop -i TxHeader -I Cookie,以下信息显示:
TxHeader Cookie: frontend=965b5...(*lots of numbers); adminhtml=3ae65...(*lots of numbers); EXTERNAL_NO_CACHE=1
“(*很多数字)”只是我添加的信息
如何使用 Varnish VCL 配置来缓存页面以删除此 cookie?
谢谢您提供的任何帮助!我们将不胜感激!
托马斯
答案1
根据Varnish 缓存文档你可以使用类似的东西。我在其他网站上使用过类似的设置,效果非常好!
sub vcl_recv {
if (req.http.cookie) {
set req.http.cookie = ";" + req.http.cookie;
set req.http.cookie = regsuball(req.http.cookie, "; +", ";");
set req.http.cookie = regsuball(req.http.cookie, ";(frontend|adminhtml|EXTERNAL_NO_CACHE)=", "; \1=");
set req.http.cookie = regsuball(req.http.cookie, ";[^ ][^;]*", "");
set req.http.cookie = regsuball(req.http.cookie, "^[; ]+|[; ]+$", "");
if (req.http.cookie == "") {
remove req.http.cookie;
}
}
}
答案2
这听起来很像是你的 VCL 错了,因为你的缓存在多台计算机上不一致。
我不确定你正在使用什么 VCL,但我建议你阅读一下
有适用于 Magento 1.4 和 Varnish 2 的可运行且经过测试的 VCL,可提供您正在寻找的结果