升级到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.statusberesp.reason

对VMOD的更改

许多VMOD需要稍作调整才能与此版本配合使用。看见 开发人员:VMOD作者的更改 了解更多细节。

eof