避免 Varnish 攻击 Magento Cookies - VCL

避免 Varnish 攻击 Magento Cookies - VCL

各位 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,但我建议你阅读一下

http://www.sonassihosting.com/blog/magento-performance/magento-performance-optimization-with-varnish-cache-4/

有适用于 Magento 1.4 和 Varnish 2 的可运行且经过测试的 VCL,可提供您正在寻找的结果

相关内容