清漆3.0.2未找到符号:'hash_data'

时间:2015-10-07 03:30:33

标签: regex varnish varnish-vcl

我正在尝试将regex应用于传入请求的req.url但是我需要测试完整路径(我正在测量来自根的段)

从阅读清漆手册看来,我可以使用hash_data()内置函数来执行此操作,所以我在vcl_recv中尝试这个。

    std.syslog(180, hash_data(req.url));

    if(req.url ~ "(?=io\/page\/)([^=]*).([^*]*)")
    {
         // do some regsub
    }

然而,重新加载清漆配置失败......

来自VCC编译器的消息: 未找到符号:'hash_data'(预期类型为STRING_LIST):

有人在这里发现了这个问题吗?

1 个答案:

答案 0 :(得分:0)

您的req.url已包含完整路径。如果需要,您的req.http.host将包含主机。我不知道你认为hash_data为你的任务服务的目的是什么。

您的错误来自hash_data未在当前上下文中定义(除了vcl_hash之外的任何地方)。它的目的是添加要添加的请求的其他方面(默认为host和url)以使缓存条目唯一。例如,如果您希望自定义标头的不同值来提供不同的缓存条目。换句话说,它应该与你的问题无关。