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溢出.
这可能发生的原因
发生这种情况的原因有多种:
- 您可能有 运行 个 工作空间
- 您可能已经达到
http_max_hdr
- 您可能已经达到
http_req_hdr_len
- 您可能已经达到
http_resp_hdr_len
如何检查
您可以使用以下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 过多或它们太长,varnishstat
或 varnishlog
命令将帮助您确定发生了什么。要么值太低,要么客户端接收到的或源返回的 header 过大。
祝你好运!
我已经在 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溢出.
这可能发生的原因
发生这种情况的原因有多种:
- 您可能有 运行 个 工作空间
- 您可能已经达到
http_max_hdr
- 您可能已经达到
http_req_hdr_len
- 您可能已经达到
http_resp_hdr_len
如何检查
您可以使用以下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 过多或它们太长,varnishstat
或 varnishlog
命令将帮助您确定发生了什么。要么值太低,要么客户端接收到的或源返回的 header 过大。
祝你好运!