varnish - 升级到 Varnish v4

标签 varnish varnish-vcl

我们已将 varnish v3 升级到 v4,我目前正在转换我的 vcl。

在 v3 版本中,我们使用内联 C 来设置和读取具有以下功能的 header :

VRT_GetHdr(sp, HDR_REQ, header);    
VRT_SetHdr(sp, HDR_REQ, header, value , vrt_magic_string_end);

但是在第 4 版中,这些功能略有改变。
经过一番搜索,我们发现我们需要使用一种结构来定义标题。
VCL_HEADER hdrdef;
hdrdef->where = HDR_REQ;
hdrdef->what = "\005Test:";

当使用它时,我们得到一个编译器失败并显示它无法分配给只读对象的消息。
有人知道我们如何利用/填充这个结构吗?

提前致谢!

克里斯托夫

最佳答案

这应该可以解决问题:

C{
static const struct gethdr_s VGC_HDR_REQ_hdrdef = { HDR_REQ, "\005Test:" };
}C

C{
VRT_SetHdr(ctx, &VGC_HDR_REQ_hdrdef, value, vrt_magic_string_end);
}C

见:https://github.com/varnish/Varnish-Cache/blob/master/bin/varnishtest/tests/r01406.vtc

关于varnish - 升级到 Varnish v4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25160737/

相关文章:

docker - 在Docker上设置Varnish + Drupal

caching - Varnish :具有多个 IP 的后端(或使用其他东西)

caching - Varnish 503 错误/无后端连接

django - 批量存储和提供静态内容的最佳方式

include - Varnish 包含无法在同一目录中找到文件

php - Varnish 503 错误(缓存过载?)

apache - Varnish 缓存 : 1 server, 2IP,2 个网站

linux - 我正在 EC2 linux 上从 docker hub 运行 open varnish 镜像,如何启用 varnish 日志记录?

c - 内联 C 和 vcl 缓存

django - 对 Varnish 缓存的 View 使用 Django 的 CSRF 保护