Varnish 对缓存内容(URL + 查询字符串)的长度有默认限制吗?

Varnish has default limits for cache contents(URL + query string)'s length?

在带有 varnishncsa 的 varnish 日志中,我发现 URL + 查询字符串部分似乎被截断了,例如:

$ sudo varnishncsa -F "%U%q" | awk '{print [=11=],length}' > uq.vlen
(... few hours later within a host has a lot of traffics)
$ cat uq.vlen | sort -srn -k 2 | head -10
/<opaque_path>?<opaque_long_query_strings> 254
/<opaque_path>?<opaque_long_query_strings> 254
/<opaque_path>?<opaque_long_query_strings> 254
/<opaque_path>?<opaque_long_query_strings> 254
/<opaque_path>?<opaque_long_query_strings> 254
/<opaque_path>?<opaque_long_query_strings> 254
/<opaque_path>?<opaque_long_query_strings> 254
/<opaque_path>?<opaque_long_query_strings> 254
/<opaque_path>?<opaque_long_query_strings> 254
/<opaque_path>?<opaque_long_query_strings> 254
...

URL + 清漆内容的查询字符串的长度是否有限制?(默认为 254?)在文档或我的 vcl 文件 (vcl 4.0) 中找不到。

您只是达到了日志记录限制vsl_reclen

使用 varnishadm param.set vsl_reclen X 在运行时增加它或 -p vsl_reclen=X 命令行参数到 varnishd

如果您需要达到特别高的值,请考虑将 vsl_buffer also. If you do that, also increase workspace_client and workspace_backend 增加相同的数量。