Varnish - 生成 http header 溢出

Varnish - generating http header overflows

我已经在 Zabbix 中为 Varnish 安装了一个监控模板(它是 6.0 LTS),现在我收到了高级警告:

Varnish 缓存[] - MAIN.losthdr(HTTP header 溢出/秒)(.....:[=​​22=]["","MAIN.losthdr"]): 0.07 秒

我一直在尝试查找 Varnish 文档和 google 了解在他们的情况下 "header overflow" 究竟是什么,但我发现的很少,包括关于什么是的更详细的解释MAIN.losthdr。 当然,我可以直接取消警报,但我很想进一步探究原因

有什么想法吗?

MAIN.losthdr 计数器跟踪我们 丢失 一个 header 的次数,这意味着有一个 header溢出.

这可能发生的原因

发生这种情况的原因有多种:

如何检查

您可以使用以下varnishstat命令监控您的工作区计数器:

varnishstat -1 -f "MAIN.ws_*"

您还可以检查每个 header 限制的当前值。方法如下:

varnishadm param.show http_max_hdr
varnishadm param.show http_req_hdr_len
varnishadm param.show http_resp_hdr_len

您还可以使用 varnishlog 实时查看您的流量并过滤掉有 header 问题的请求。执行此操作的方法如下:

varnishlog -g request -q "BogoHeader"

如何修复

如果是工作区问题,您可能需要调整工作区设置。

如果发现您的 header 过多或它们太长,varnishstatvarnishlog 命令将帮助您确定发生了什么。要么值太低,要么客户端接收到的或源返回的 header 过大。

祝你好运!