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
命令将等待文本显示的时间延长一个数量级。过去,它对任何形式的时间中断都过于敏感。