Varnish的变化 7.4

有关将当前Varnish部署更新到新版本的信息,请参见 升级到Varnish 7.4

有关Varnish更改的更详细的技术说明,以及指向已修复的问题和已合并的拉入请求的链接,请参阅 change log

华而不实

现在,对于允许的字符,HTTP/2报头字段验证更加严格。

这个 VCL-STEP 添加了手册页来记录VCL状态机。

VCL追踪

VCL跟踪现在需要通过设置 req.tracebereq.trace VCL变量,这些变量从 feature +trace 旗帜。只有在设置跟踪变量的情况下才会 VCL_trace 生成日志记录。

因此, VCL_trace 已从默认设置中删除 vsl_mask ,因此默认情况下将发出所有跟踪记录。 vsl_mask 仍可用于过滤 VCL_trace 唱片。

追踪 vcl_init {}vcl_fini {} ,设置 feature +trace 标志,同时加载/丢弃VCL。

参数

这个 startup_timeout 参数现在专门替换了 cli_timeout 仅适用于初始启动。

对VCL的更改

这个 Content-LengthTransfer-Encoding 标头现在受到保护。的常见用例 unset (be)req.http.Content-Length 打发一具身体, unset (be)req.body 应该被使用。

Varnishlog

选定存储引擎的对象创建失败现在记录在 Error 标记为 Failed to create object object from %s %s

瓦尼沙德姆

列表中列出了 vcl.list 已对CLI输出进行了轻微修改。

Varnish状态

柜台 MAIN.http1_iovs_flush 已经添加了跟踪早产儿的数量 writev() 由于IO向量数量不足而导致的调用。此编号通过配置 http1_iovs 用于客户端连接的参数,并由后端连接的可用工作区数量隐式定义。

Varnish测试

测试目录的基本名称现在可以作为 vtcid 宏在并发运行的测试中充当唯一的字符串。

这个 varnishd_args_prependvarnishd_args_append 添加了宏以允许将参数添加到 varnishd 由添加的调用之前和之后的调用 varnishtest 默认情况下。

User-Agent 请求和 Server 现在默认情况下创建响应标头,其中包含相应的客户端和服务器名称。这个 txreq -nouseragenttxresp -noserver 选项禁止添加这些标头。

针对开发人员和VMOD作者的更改

VMOD函数和方法的调用点现在可以限制为使用 $Restrict VCC文件中的节。

.vcc VMOD文件现已安装到 /usr/share/varnish/vcc (或等效物),以支持代码编辑器等其他工具的重用。

API更改

这个 varnishapi 版本已提高到3.1,并且 VSHA256_*VENC_Encode_Base64()VENC_Decode_Base64() 函数现在已公开。

在……里面 struct vsmwsegstruct vsm_fantom vt.的. class 成员已重命名为 category

这个 VSB_quote_pfx() (因此, VSB_quote() )函数不再产生 \v 用于垂直制表符。这提高了与JSON的兼容性。

添加到VarnishC头文件

这个 PTOK() 宏已添加到 vas.h 简化的错误检查 pthread_* POSIX函数。

这个 v_cold 已将宏添加到添加 __attribute__((cold)) 关于支持它的编译器。它是用来 VRT_fail() 将故障代码路径标记为冷。

实用程序宏 ALLOC_OBJ_EXTRA()ALLOC_FLEX_OBJ() 已添加到 miniobj.h 使用灵活的数组来简化比结构等大的对象的分配。

eof