HAProxy를 사용하여 전체 POST 본문을 로깅 하시겠습니까?


12

자바 스크립트 클라이언트가 응용 프로그램 서버와 상호 작용하는 방식에 대한 몇 가지 문제를 추적하려고하며 http http로드 (헤더, 본문 및 모든)가 앞뒤로 전달되는 것을보고 싶습니다.

애플리케이션 서버 앞에 이미 haproxy 서버가 있으므로 haproxy를 사용하여 관련 로그를 제공 할 수 있기를 바랐습니다. 분명히 이것은 프로덕션 환경에서 켜기에는 좋지 않지만이 디버깅을 수행하는 동안 격리 될 수있는 전체 환경의 복제본이 있습니다.

haproxy가 특정 백엔드 서버로가는 POST 요청에 대한 전체 http 페이로드를 기록하도록하는 방법이 있습니까?

답변:


3

Haproxy에는 POST 내용 또는 HTTP 본문을 기록하는 기능이 없습니다.

대신 Wireshark를 사용하십시오.


감사. 크롬 개발자 도구에서 POST를 볼 수있게되었습니다.
Peter Groves

이것은 더 이상 사실이 아닙니다. 아래 hack_on의 게시물을 참조하십시오.
PMV

18

분명히 버전 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
#   ...

안녕하세요,이 req.body를 동일한 기본 haproxy.log가 아닌 다른 파일에 기록하는 방법이 있습니까?
Shoaib Khan

안녕. 하나의 로그 파일에 요청 및 응답 본문을 기록하는 방법은 무엇입니까?
Yuriy Tigiev
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.