以自定义格式记录 HAProxy 捕获的响应 header

Log HAProxy captured response header in custom format

我有一个带有自定义 JSON log-format 的 HAProxy 配置。我想捕获特定响应 header 并记录下来。

但是,无论我如何尝试捕获它,都无法使其出现在日志中。

在我的日志格式中,我使用 %[capture.res.hdr(0)],但它只显示为 -。我也试过 %[res.hdr(0)]%[res.hdr(MyHeader)] 但它们不是有效的配置并且 HAProxy 无法启动。

我试过使用以下方式捕获:

capture response header MyHeader len 50

但是没用。我也试过:

declare capture response len 50
http-response capture res.hdr(MyHeader) id 0

没有成功。 %hs 格式变量有效 - 所有捕获的 headers 都记录在分隔字符串中。但我想将 header 单独记录为 JSON 属性。

我做错了什么?

我目前使用的是 HAProxy 1.8。

似乎 frontend 部分中的 capture response header MyHeader len 50log-format 部分中的 %[capture.res.hdr(0)] 的组合确实有效。事实证明我有多个 HAProxy 实例 运行 并且只重新加载了其中的一些实例,因此更改仅针对某些请求进行。