【问题标题】:Varnish 3.0.2 Symbol not found: 'hash_data'未找到清漆 3.0.2 符号:'hash_data'
【发布时间】:2016-01-04 03:50:01
【问题描述】:

我正在尝试将正则表达式应用于传入请求的 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):

有人发现这里的问题吗?

【问题讨论】:

    标签: regex varnish varnish-vcl


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 2014-09-29
      • 2018-11-10
      • 1970-01-01
      相关资源
      最近更新 更多