升级到Varnish 6.6¶
一般而言,此版本不应与以前的版本6.5有相关的不兼容。
VCL应该继续像以前一样工作,除非使用了相当奇怪的、部分意想不到的和/或未记录的功能。
标题验证¶
Varnish现在验证从VCL设置的任何标头,以仅包含RFC7230允许的字符。如果没有,则触发(运行时)VCL故障。这类VCL故障会导致 503
应对措施,应进行调查。作为最后的手段, validate_headers
参数可以设置为 false
以避免这些VCL故障。
禁止更改¶
这个
ban_cutoff
参数现在指的是禁令列表的总长度,包括已完成的禁令,而在此之前,只有未完成(“有效”)的禁令被计入ban_cutoff
。这个
ban()
VCL内置现在已弃用,应替换为 std.ban() and std.ban_error()
会计变更¶
会计统计和日志记录已更改。看见 会计核算 了解更多细节。
VSL更改¶
这个 -c
日志实用程序选项不再包括ESI请求。一种新的 -E
选项现在可用于ESI请求,这意味着 -c
也是。这将使所有日志实用程序与 varnishncsa
凡. -E
选项最初是引入的。
如果您使用 -c
要同时收集客户端和ESI请求,您应该使用 -E
取而代之的是。如果您使用 -c
和VSL查询以排除ESI请求,则应该不再需要该查询。
其他VCL变化¶
这个
resp.proto
变量现在是只读的,因为它应该保持很长时间,就像其他变量一样*.proto
变量。更改协议是错误的,不应该是必需的。
试图利用
std.rollback()
从…vcl_pipe
现在会导致VCL故障。return(retry)
从…vcl_backend_error {}
现在可以正确地重置beresp.status
和beresp.reason
。
对VMOD的更改¶
许多VMOD需要稍作调整才能与此版本配合使用。看见 开发人员:VMOD作者的更改 了解更多细节。
eof