【问题标题】:inline C & vcl caching内联 C 和 vcl 缓存
【发布时间】:2012-02-24 17:15:23
【问题描述】:

我有网址

...../suggest?callback=jsonp9999999999999&term=something

我想从 url 中去掉 callback=jsonp999999999999&,缓存其余的 (...../suggest?term=something) 并传递完整的URL (...../suggest?callback=jsonp9999999999998&term=something) 再次到后端。

当第二个请求的格式为 (...../suggest?callback=jsonp000000000000&term=something) varnish 必须删除 callback=jsonp000000000000& 检查缓存命中并从缓存中返回结果。

内联 C 和 VCL 可以做到这一点吗?

【问题讨论】:

  • 什么是内联 C?您是在谈论 C(例如 ISO C99 标准)语言吗??

标签: c caching varnish varnish-vcl


【解决方案1】:

如果查询字符串始终以 "callback=jsonp" 开头,则搜索它的开头(strstr 非常适合)。然后直接找到下一个'&'strchr是这里要用的函数)。然后将第一部分复制到新缓冲区,并将最后一部分连接到新缓冲区。

【讨论】:

    【解决方案2】:

    有可能,您可以像操作 cookie 或其他标头一样更改 req.url 参数。 Here's an example 关于如何在将 Google Analytics(分析)参数发送到您的后端之前将其剔除,同样的逻辑适用于此。

    【讨论】:

      猜你喜欢
      • 2015-01-10
      • 1970-01-01
      • 2017-07-03
      • 2020-09-13
      • 1970-01-01
      • 2015-12-16
      • 2013-03-21
      • 2011-06-10
      • 1970-01-01
      相关资源
      最近更新 更多