如何在 HAProxy 中捕获具有相同名称的多个 HTTP 标头(例如:set-cookie)?

如何在 HAProxy 中捕获具有相同名称的多个 HTTP 标头(例如:set-cookie)?

我想捕获并记录 HTTP 响应中的所有 Set-Cookie 标头。问题是我只在日志行中获取最后一个 Set-Cookie。我在 docker 中使用 haproxy 1.7(FROM haproxy:1.7)。我的配置文件的前端部分如下所示:

frontend http-in
    capture request header cookie len 100
    capture response header set-cookie len 1000
    log-format "%ci:%cp [%t] %hr %hs %{+Q}r"

HTTP 响应标头部分的示例如下所示:

HTTP/2.0 200 OK
content-type: text/html;charset=UTF-8
server: Server
date: Thu, 04 Jul 2019 08:36:39 GMT
strict-transport-security: max-age=47474747; includeSubDomains; preload
vary: Accept-Encoding,User-Agent,X-Amzn-CDN-Cache,X-Amzn-AX-Treatment
content-language: de-DE
x-ua-compatible: IE=edge
cache-control: no-cache
pragma: no-cache
expires: -1
content-encoding: gzip
x-xss-protection: 1;
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
set-cookie: session-id=257-4934332-2510024; Domain=.amazon.de; Expires=Tue, 01-Jan-2036 08:00:01 GMT; Path=/
set-cookie: session-id-time=2082787201l; Domain=.amazon.de; Expires=Tue, 01-Jan-2036 08:00:01 GMT; Path=/
set-cookie: i18n-prefs=EUR; Domain=.amazon.de; Expires=Tue, 01-Jan-2036 08:00:01 GMT; Path=/
x-amz-rid: XAVKCTHFYAMGP6C4GZ66
x-cache: Miss from cloudfront
via: 1.1 f0a97a8c56cd2bb79a1739863489ed4c.cloudfront.net (CloudFront)
x-amz-cf-pop: FRA6-C1
x-amz-cf-id: PZySU6Kl1g5gKK7Cn6HOGtowfauRyA-R3U_1FXHDlkO2ZyfnnHpuBg==
X-Firefox-Spdy: h2

日志中只显示三个 set-cookie 标头中的最后一个。cookie 的名称可以完全不同(没有前缀),所以我不能使用capture cookie

有没有办法捕获并记录 haproxy 中的所有 Set-Cookie 标头?

相关内容