升级到Varnish 7.2

华而不实

参数

以下参数已弃用:

  • vcc_allow_inline_c

  • vcc_err_unref

  • vcc_unsafe_path

它们仍然可以设置为单独的布尔参数。不推荐使用的别名将在将来的版本中删除。

它们被替换为 vcc_feature BITS参数:

  • allow_inline_c

  • err_unref (默认情况下启用)

  • unsafe_path (默认情况下启用)

以下命令等效:

param.set vcc_err_unref off
param.set vcc_feature -err_unref

身份

服务器标识必须是有效的HTTP令牌,这可能会对现有设置造成问题。例如 varnishd -i "edge server 1" 不再被接受。您可以使用类似于 varnishd -i "edge-server-1" 取而代之的是。

VCL

默认情况下,Varnish会生成一个Via标头并将其转发到后端。这可以被防止,例如在 vcl_recvvcl_backend_fetch

sub vcl_recv {
    unset req.http.via;
}

sub vcl_backend_fetch {
    unset bereq.http.via;
}

Via标头是使用 server.identity 属性的变量 received-by 菲尔德。看见 rfc9110_ 有关Via标头的说明,请参见。

A resp.http.via 标题不再由Varnish覆盖,而是追加到后面。

VMODs

Vmod_cookie生成的Cookie过去有一个尾随分号,这与 rfc6265 。这应该不会造成问题,除非一段VCL代码或后端已经依赖于这种不正确的行为。

Varnishlog

这个 BeginLink 对于子请求级别,日志记录有一个可选的第4个字段。这可能会破坏日志处理器、日志查询或NCSA格式,这些格式要求这些记录正好有3个字段。

Varnish状态

这个 MAIN.fetch_no_thread 计数器不见了,它从来没有起作用过。跟踪 MAIN.bgfetch_no_thread 取而代之的是计数器。

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

这些功能 VRT_AddVDP()VRT_AddVFP()VRT_RemoveVDP()VRT_RemoveVFP() 都已被弃用。使用 VRT_AddFilter() 添加一对(VFP和VDP)和 VRT_RemoveFilter() 把它移走。筛选器对需要至少一个成员。

这个 varnishtest -i 选项不再在Varnish源树之外工作。不应该有理由使用 -i 在瓦尼什测试套件之外。

eof