때때로 중단되는 응용 프로그램 서버가 있습니다. 클라이언트의 요청이 잘못되었다고 의심됩니다.
nginx가 전체 요청 / 응답 (피들러 캡처와 같은)을 파일에 기록 할 수 있습니까? 그래서 중단 전에 보낸 요청을 볼 수 있습니까?
(아마도 pcap과 그 접근 방식을 피하고 nginx에서 모두 수행해야합니다)
nginx가이 도구에 적합한 도구가 아닌 경우 네트워크 분석기 이외의 다른 도구는 무엇입니까?
때때로 중단되는 응용 프로그램 서버가 있습니다. 클라이언트의 요청이 잘못되었다고 의심됩니다.
nginx가 전체 요청 / 응답 (피들러 캡처와 같은)을 파일에 기록 할 수 있습니까? 그래서 중단 전에 보낸 요청을 볼 수 있습니까?
(아마도 pcap과 그 접근 방식을 피하고 nginx에서 모두 수행해야합니다)
nginx가이 도구에 적합한 도구가 아닌 경우 네트워크 분석기 이외의 다른 도구는 무엇입니까?
답변:
방문자가 요청 본문을 보내려면 client_body_in_file_only on;
var $request_body_file
를 로그 형식 에 추가하여 로그에 작성된 "임시"파일을 사용 하고 기록하십시오 . "임시"파일은 기본적으로 client_temp 디렉토리에 있습니다.
요청 헤더 $http_<header>
도 기록하고로 헤더를 보냈습니다 $sent_http_<header>
.
요청 본문과 헤더가있는 경우 요청 본문과 헤더를 재생하고 방문자의 응답을 얻을 수 있어야합니다.
또한 gor 와 같은 것을 고려해야합니다. 다른 환경에서 트래픽을 재생할 수 있으므로 프로덕션 환경에서 IO 문제를 일으키지 않고 nginx가 이러한 임시 파일을 작성할 수 있습니다 (nginx는 그 on
값을 제거 하지 않습니다. 그 이유는 "임시"가 아닙니다. 이 경우).
client_body_in_file_only
하고 $http_<header>
필요할 것이다. 나는 지금 그것을 얻는다.
mitmproxy 는 원하는 것을 수행하는 데 적합한 도구 인 것 같습니다.
mitmproxy는 콘솔 인터페이스를 사용하는 HTTP 용 대화식 SSL 가능 man-in-the-middle 프록시입니다.
mitmdump는 mitmproxy의 명령 행 버전입니다. tcpdump를 HTTP로 생각하십시오.
풍모
- HTTP 요청 및 응답을 가로 채고 즉시 수정하십시오.
- 나중에 재생하고 분석 할 수 있도록 완전한 HTTP 대화를 저장하십시오.
- HTTP 대화의 클라이언트 측을 재생하십시오. 이전에 기록 된 서버의 HTTP 응답을 재생합니다.
- 트래픽을 지정된 서버로 전달하려면 프록시 모드를 반전시킵니다.
- OSX 및 Linux의 투명 프록시 모드.
- Python을 사용하여 HTTP 트래픽을 스크립트로 변경하십시오.
- 차단을위한 SSL 인증서는 즉시 생성됩니다.
리버스 프록시 모드를 사용하면 Fiddler와 마찬가지로 요청 및 응답을 캡처 할 수 있습니다.