Varnish 6.5.0中的更改¶
有关将当前Varnish部署更新到新版本的信息,请参见 升级到Varnish 6.5.0 。
有关Varnish更改的更详细的技术说明,以及指向已修复的问题和已合并的拉入请求的链接,请参阅 change log 。
华而不实¶
访问控制列表(ACL)¶
如果在ACL中使用的网络号不具有全零主机部分,则VCL编译器现在发出警告(例如, "192.168.42.42"/24 )。默认情况下,此类ACL条目固定为全零,并且该事实记录在 ACL VSL标签。
参数¶
一种新的 vcc_acl_pedantic 参数,当设置为 true 在ACL条目包括网络前缀,但主机位不全为零的情况下,会将上面记录的ACL警告转换为错误。
这个 solaris jail has been improved and can reduce privileges even further. There is now a new optional -j solaris,worker=... 参数,该参数允许扩展辅助(缓存)进程的有效权限集。
Varnish的其他变化¶
在VCL编译器中改进了一些错误消息。
对VCL的更改¶
VCL变量¶
一种新的 obj.can_esi 已添加变量以标识是否可以对响应进行ESI处理。
一次 resp.filters 显式设置,尝试设置 resp.do_* 字段会导致VCL失败。同样的规则也适用于 beresp.filters 和 beresp.do_* 菲尔兹。
这个 BACKEND VCL类型现在有一个 .resolve() 方法直接从VCL中找到有效的后端。如果选择了导演,则决议将被推迟到从 vcl_backend_fetch 或 vcl_pipe **
# eager backend selection
set bereq.backend = bereq.backend.resolve();
现在可以手动设置 Connection: close 标题输入 beresp 发出不应回收后端连接的信号。这可能有助于处理在某些情况下难以管理其连接端的后端,例如某些类型的资源。
应注意保留Connection Header中列出的其他Header::
sub vcl_backend_response {
if (beresp.backend == faulty_backend) {
if (beresp.http.Connection) {
set beresp.http.Connection += ", close";
} else {
set beresp.http.Connection = "close";
}
}
}
VCL的其他更改¶
在……的失败 vcl_recv 可以在以下时间恢复执行 vcl_hash 在有效结束交易之前,这一点已经得到纠正。在……的失败 vcl_recv 现在是决定性的了。
有一种新的语法用于 BLOB 字面值: :<base64>: 。此语法还用于将BLOB自动转换为字符串。
304响应的行为已更改为不更新 Content-Encoding 存储对象的响应头。
VMODs¶
一种新的 std.blobread() 功能类似于 std.fileread() 添加了用于处理二进制文件的。
碎片导演的 .add_backend() 方法有一个新的可选 weight 参数。添加或删除后端时出现的错误现在会使事务失败(或 vcl.load 命令输入 vcl_init ),但无效的权重不会导致硬故障。
碎片控制器不再输出(未使用) canon_point 中的属性 backend.list 命令。
Varnishlog¶
这个 BackendReuse 日志记录已停用。它的命名与其他地方不一致,比如统计计数器,在那里我们使用单词Reuse和Reccle(它应该被命名为 BackendRecycle 如果有什么不同的话)。
这个 BackendOpen 现在,记录可以判断到后端的连接是从池中打开还是重新使用,而 BackendClose 记录将显示连接是否被有效关闭或回收到池中。
瓦尼沙德姆¶
这个 backend.set_health 命令可用于在生病和健康之间强制特定状态,或恢复自动行为,这取决于探测器的存在。虽然强制后端出现问题会阻止其被控制器选择,但从VCL直接选择后端仍会尝试连接。此问题已修复,并澄清了该命令的文档。
Varnish状态¶
帮助屏幕现在以交互模式通过 h 钥匙。
同样在交互模式中,现在选择初始详细信息,以便通过 -f 或 -I 选项实际上是在不手动增加详细级别的情况下显示的。
使用 -f 选项现在已弃用,转而支持 -I 和 -X 按顺序处理的选项。虽然仍然存在,但 -f 选项现在也可以按顺序工作,而不是先按排他筛选器,然后按包含筛选器。它也被错误地记录为包容性优先。
JSON输出稍有更改,可以更轻松地与可能将JSON对象映射到类型的编程语言一起使用。有关更多详细信息,请参阅升级说明。
有两个新的 MAIN.beresp_uncacheable 和 MAIN.beresp_shortlived 柜台。
Varnish测试¶
这个 process -expect-text 命令将等待文本显示的时间延长一个数量级。过去,它对任何形式的时间中断都过于敏感。