升级到Varnish 6.3

对于许多和/或标记的VCL的用户

先进技术背后的用户 vcl.state CLI命令(最有可能通过 varnishadm )应注意以下更改,这些更改可能需要调整(或者更有可能的是,允许简化)与VARNISH接口的脚本/程序:

VCL auto 国家已经得到了精简。从概念上讲,它曾经是 warm 自动冷却VCL的状态。然而,冷却不仅改变了温度,也改变了状态,所以 auto 只有一种方法奏效--除了 vcl.use 或者移动标签(通过标记另一个VCL)也将设置 auto ,因此手动暖/冷设置将会丢失。

现在 auto 状态将保持不变,无论实际温度还是标记,因此当VCL需要隐式更改温度(由于正在使用或被标记)时, auto VCL将保留 auto ,和一个 cold / warm VCL会改变状态,但永远不会成为 auto 含蓄地。

面向VMOD和API客户端的开发人员和作者

Python2即将停产,我们的构建系统现在支持Python3。在2020-03-15版本中,我们计划只支持Python3。

“vararg” VCL_STRING_LIST 类型被基于数组的 VCL_STRANDS 打字。不推荐使用的字符串列表最终将被完全删除,强烈建议VMOD作者将其转换为字符串。使用字符串列表参数的VRT函数现在采用串。

更多功能,如 VRT_Vmod_Init()VRT_Vmod_Unload() 从VRT命名空间移至Varnish专用接口(VPI)。这样的功能从一开始就不是为VMOD设计的。

这些功能 VRT_ref_vcl()VRT_rel_vcl() 已分别重命名为 VRT_VCL_Prevent_Discard()VRT_VCL_Allow_Discard()

一些函数采用 VCL_IP 现在,争论需要一个 VRT_CTX 以便在存在无效IP地址的情况下失败。

看见 vrt.h 查看自6.2.0版本以来的更改列表。

我们有时会用 Coccinelle 在整个代码库中自动执行C代码重构。我们的语义补丁集合可供VMOD和API客户端作者使用,并可在Varnish源代码树的 tools/coccinelle/ 目录。

这个 WS_Reserve() 函数已弃用,并由两个函数取代 WS_ReserveAll()WS_ReserveSize() 以避免模棱两可的情况。它的移除计划在2020-09-15发布。

A ws_reserve.cocci 语义补丁可以帮助实现这一转变。

eof