【问题标题】:Varnish cache according to custom header根据自定义标头清漆缓存
【发布时间】:2014-03-14 12:03:13
【问题描述】:

我正在使用 Varnish 为网站提供服务,但需要根据地理位置进行缓存。我编写了一个小型 Vmod,它使用 Ip2Location 设置一个请求标头,其中包含国家代码,然后通过 Apache 传递给我的应用程序(Magento),它提供相关内容,但我需要 Varnish 也根据国家代码缓存.

有什么办法可以做到吗?

【问题讨论】:

  • 我正在寻找一个可以做到这一点的模块。您的模块是否在某处发布?

标签: caching varnish varnish-vcl


【解决方案1】:

我已经整理好了。

在 vcl_hash 子例程中,我需要将国家代码添加到散列数据中。

sub vcl_hash {
     hash_data(req.url);
     if (req.http.host) {
         hash_data(req.http.host);
     } else {
         hash_data(server.ip);
     }
     hash_data(req.http.X-Country-Code);

     return (hash);
}

我使用的默认 vcl 已将整个 vcl_hash 子例程注释掉,因为它使用 req.hash 而不是在 Varnish 3 中不再可用的 hash_data(),因此请根据需要进行调整。

【讨论】:

    猜你喜欢
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 2019-01-14
    • 1970-01-01
    • 2012-04-03
    • 2013-01-09
    • 2012-02-19
    相关资源
    最近更新 更多