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.time
req_top.time
resp.time
bereq.time
beresp.time
obj.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