升级到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