Varnish 7.1中的更改¶
有关将当前Varnish部署更新到新版本的信息,请参见 升级到Varnish 7.1 。
有关Varnish更改的更详细的技术说明,以及指向已修复的问题和已合并的拉入请求的链接,请参阅 change log 。
华而不实¶
参数¶
存在一种新的参数:不推荐使用的别名。他们的文档很少,主要是指他们别名的实际符号。除非明确说明,否则它们不会在CLI中列出。
目前还没有不推荐使用的别名,但一些别名已经计划在未来的版本中使用。当直接使用别名参数时,几乎没有任何开销。
不受欢迎的 vsm_space 参数已删除。
一种新的 cc_warnings 参数包含从 cc_command ,进而又产生了新的扩张:
%d: the raw defaultcc_command%D: the expanded defaultcc_command%w:cc_warnings参数%n:工作目录 (-n选项)
这应该有助于围绕VCL编译创建包装器脚本。
有一种新的 experimental 参数,该参数与 feature 参数,只是它保护可能不被认为是完整或稳定的功能。试验性功能可以升级为常规功能,也可以删除,而不会被认为是突破性的变化。
命令行选项¶
的不推荐使用的子参数 -l 选项被移除,它现在是 vsl_space 仅限参数。
这个 -T , -M 和 -P 命令行选项可以多次使用,而不是只保留最后一次。
当没有活动的VCL时,也总是隐式使用第一个加载的VCL。现在,这仅适用于加载了 -f 或 -b 选项,因为它们意味着 vcl.use 。通过Varnish CLI加载的VCL (vcl.load 或 vcl.inline )通过CLI脚本加载 -I 命令行选项需要显式 vcl.use 。
Varnish的其他变化¶
ESI现在支持 onerror="continue" 属性。然而,为了生效一项新的 +esi_include_onerror 需要提升功能标志。
对VCL的更改¶
现在可以将一个 BLOB 值设置为 BODY 变量,除了 STRING 和以前一样。
VCL变量¶
添加了新的VCL时间戳变量以跟踪创建HTTP消息的时间点:
req.timereq_top.timeresp.timebereq.timeberesp.timeobj.time
新的 req.transport 变量根据需要返回“HTTP/1”或“HTTP/2”。
VCL的其他更改¶
在需要正则表达式文字的地方,现在可以连接常量字符串。当表达式的一部分来自环境特定的INCLUDE时,或者将一个长表达式拆分成多行时,它会很有用。(在7.0.1中引入)
类似于 varnishd 参数,现在可以拥有不推荐使用的VCL变量别名。虽然到目前为止还没有,但别名将允许重命名一些符号,而不会立即破坏现有的VCL代码。
不推荐使用的VCL别名没有运行时开销,它们在VCL编译时被具体化。
VMODs¶
新的 字符串strftime(时间时间,字符串格式) 用于UTC格式设置的函数。
现在可以声明VMOD函数和对象方法的不推荐使用的别名,就像VCL别名一样。这个 cookie.format_rfc1123() 函数已重命名为 字符串FORMAT_DATE(当前时间,持续时间增量) ,为了兼容,前者被保留为后者的弃用别名。
不推荐使用的VMOD别名没有运行时开销,它们在VCL编译时被具体化。
Varnishlog¶
现在可以使用以下命令写入标准输出 -w - ,与读取标准输入的能力不相上下 -r - 。这在守护程序模式下是不可能的。
在管道场景中,后端事务发出开始时间戳,客户端和后端事务发出进程时间戳。
瓦尼西克萨¶
现在可以使用以下命令写入标准输出 -w - ,与读取标准输入的能力不相上下 -r - 。这在守护程序模式下是不可能的。
瓦尼沙德姆¶
什么时候 vcl.show 在不带参数的情况下调用,则默认为活动的VCL。
这个 param.set 命令接受 -j 选择。在本例中,JSON输出与 param.show -j 更新的参数的。
一种新的 debug.shutdown.delay 出于测试目的,Varnish CLI中提供了命令。出于测试目的,查看其环境(服务管理器、容器编排器等)对 varnishd 的子进程花费大量时间 stop 。
Varnish测试¶
这个 SO_RCVTIMEO_WORKS 功能检查已取消。(在7.0.1中引入)
报道《中国日报》 logexpect 为了可读性,事件被重新安排。
这个 abort 命令中的 logexpect 便利的 varnishtest 现在可以用来触发 abort() 以帮助调试VSL客户端库代码。
这个 vtc.barrier_sync() VMOD函数可用于 vcl_init 而今而后。
平台支持¶
CentOS¶
随着CentOS 8生命周期的结束,从现在开始,我们将在almarinux上构建el8包。这意味着我们将始终以最古老的el8分支为目标。例如,为el8.5构建的包不能保证在el8.1上工作,即使后者可能仍然受到Red Hat的支持。
系统ID¶
Varnish服务的杀戮模式从 process 至 mixed 以确保在管理器进程被SYSTEM D超时时终止缓存进程。否则,将与缓存进程竞争,在旧缓存进程退出之前进行重新启动,从而在侦听端口等资源上造成冲突。
eof