Haproxy
使用 HAProxy 記錄整個 POST 正文?
我正在嘗試追踪 javascript 客戶端與應用程序伺服器互動方式的一些問題,並希望查看來回傳遞的整個 http 有效負載(標頭、正文和所有內容)。
正好在應用伺服器前面已經有一個haproxy伺服器,所以我希望能夠使用haproxy來提供相關的日誌。顯然,這在生產中打開會很糟糕,但是我有整個環境的複製,在我進行此調試時可以隔離它。
有沒有辦法讓 haproxy 為發送到特定後端伺服器的 POST 請求記錄整個 http 有效負載?
Haproxy 沒有記錄 POST 內容或 HTTP 正文的功能。
請改用 Wireshark。
顯然,從 1.6.0 版(2015 年 10 月)開始,您現在可以了。有一個新指令:
option http-buffer-request
您包含在前端或後端中以授予 HAProxy 訪問主體的權限。你使用 req.body 來訪問它。這是我使用的配置的摘要:
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 # ...