我想记录整个请求(显然不用于生产)。
首先,我尝试记录所有标题(但事先不知道它们是什么)。
在haproxy.cfg
本frontend
节中
mode http
option http-buffer-request
declare capture request len 40000000
http-request capture ".*" id 0
# log-format '{"srcIP":"%[src]","backend":"%s","bIP":"%si","bPORT":"%sp","method":"%[capture.req.method]","user-agent":"%[capture.req.hdr(1),json(utf8s)]","uri":"%[capture.req.uri]","body":"%[capture.req.hdr(0)]"}'
log-format '%[capture.req.hdr(0)]'
option dontlognull
但http-request capture ".*" id 0
不被接受 ( 也不被接受http-request capture .* id 0
)
error detected in frontend 'web_front_end' while parsing 'http-request capture' rule : unknown fetch
我不明白,因为文档它说格式是http-request capture <sample> [ len <length> | id <id> ]
“<sample>
表达式”(常规?)。
有没有更简单的方法来记录请求中的所有内容(以及响应)?
或者我如何在不知道它们是什么的情况下记录所有的请求标头?
答案1
我通常使用一种不同的方法,这种方法更通用一些 - 网络捕获。在 Linux 中,您可以使用tcpdump
,下面是示例:tcpdump -w network_capture.pcap -i eth0
。然后我在中打开捕获WireShark。
如果您在 Linux、MacOS、Windows 等系统中有 GUI,则可以直接使用 WireShark。