美好的一天!
我对 HA 代理还很陌生,我正在尝试使用 httplog 选项记录所有 http 详细信息。我能够捕获除 cookie 请求和响应之外的所有详细信息。我需要捕获它们才能了解用户在我们网站上的行为。
我在谷歌上找到了一些参考资料,如下所示,
捕获 cookie 名称 len 10
注意:我正在使用 marathon-lb haproxy 官方 docker 镜像
我不明白我应该在“名称”处给出什么,以便它可以捕获?或者有什么办法可以捕获吗?
提前感谢您的帮助:)
要记录 Cookie,您需要在记录时捕获,其中名称是您要捕获的 Cookie 的名称。
要记录捕获的 cookie,您将使用
%CC #captured_request_cookie
%CS #captured_response_cookie
您必须使用
log-format
选项并创建包含这些 cookie 的自定义日志。
文档部分https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#8.2.4
可以使用变量捕获和记录多个响应 cookie。
通常的方法是首先捕获并记录,如下所示:
capture cookie CookieOne len 63
log-format "[%t] URI:%{+Q}HU CC:%CC CS:%CS"
如前所述,使用此方法只能捕获一个 cookie 的值。
但是,如果在前端使用
http-after-response
指令将响应 cookie 捕获到响应范围变量,则可以捕获并记录多个 cookie 值,如下所示:
http-after-response set-var(res.cookie_one) res.cook(CookieOne)
http-after-response set-var(res.cookie_two) res.cook(CookieTwo)
log-format "[%t] URI:%{+Q}HU cookieone:%[var(res.cookie_one)] cookietwo:%[var(res.cookie_two)]"
还可以在设置响应 cookie 时捕获它们,以及 %hr 变量中的其他响应标头:
log-format "[%t] URI:%{+Q}HU hr:%hr"