我试图跟踪一个JavaScript客户端与应用程序服务器交互的方式的一些问题,并希望看到来回传递的整个HTTP有效载荷(头,身体和一切)。
恰好在应用程序服务器前已经有一个haproxy服务器,所以我希望能够使用haproxy来提供相关的日志。 很明显,在生产环境中打开会很糟糕,但是我可以在执行此debugging的同时克隆整个可以隔离的环境。
有没有办法让haproxylogin到特定的后端服务器的POST请求的整个HTTP负载?
Haproxy没有loggingPOST内容或HTTP主体的function。
改用Wireshark。
显然,自从1.6.0版(2015年10月)以来,你现在可以。 有一个新的指示:
option http-buffer-request
您在前端或后端包含HAProxy访问身体。 你使用req.body来访问它。 这里是我使用的configuration总结:
global log 127.0.0.1 local0 debug maxconn 2048 ulimit-n 8012 # ... defaults mode http option httplog log-format frontend:%f/%H/%fi:%fp\ GMT:%T\ body:%[capture.req.hdr(0)]\ request:%r option dontlognull # ... frontend www-http log global option http-buffer-request # id=0 to store body for logging declare capture request len 40000 bind 7.7.7.7:8007 http-request capture req.body id 0 default_backend www-backend backend www-backend mode http option forwardfor # ...