커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 시스템 관리 / 서버운영 도움말
검색 : 사이트 WHOIS 웹서버 종류

최적화 / 튜닝 / 성능개선 (6, 글 1, 자료 3)
디스크 쿼터(quota) (3, 글 1, 자료 3)
디스크 관리 / 파일시스템 / mount (34, 글 13, 자료 12)
백업(backup) / 시스템 복구 (14, 글 6, 자료 11)
서버운영 (8, 글 2, 자료 9)
프린터 관리 / 프린팅 (7)
패키지 관리 / 패치 / rpm (10, 글 5, 자료 1)
부팅, boot / LILO / GRUB (10, 글 5, 자료 9)
서버 모니터링 (10, 글 5, 자료 2)
로그인 / 로그아웃 (1)
로그(log) / syslog (5, 글 3, 자료 3)
메모리, 스왑(swap), 램디스크(ramdisk) (3, 글 2)
사용자 관리(계정 관리) (1, 자료 1)

  nginx, apache에서 POST 로그 남기기 작성일 : 2014/02/03 18:00
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 7181
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      제  목 : nginx, apache에서 POST 로그 남기기
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2014.1.28(화)

    1. nginx 설정

    log_format 설정에 $request_body 변수를 추가해주면 된다.

    1) http {} 내에

     
        log_format  post_log '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                           '"$http_user_agent" $request_time "$request_body"';
     


    2) location {} 내에

     
    # POST log
    if ( $request_method = "POST" ) {
       access_log  /LOG/httpd-post.log    post_log;
       access_log  /LOG/httpd-access.log  main;
    }
     


    access_log를 2개 지정한 것은 POST의 요청에 대해 2개 로그파일에 각각 남기기 위해서다. 1) httpd-access.log파일에는 POST요청을 했다는 기본 로그를, 2) httpd-post.log에는 POST 기본 사항 + POST data 로그도 함께 남긴다.

    [ 로그 예 ]
     
    192.168.123.111 - - [28/Jan/2014:16:10:33 +0900] "POST /board/check.html HTTP/1.1" 200 1025 "http://...생략.../board/check.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" 0.001 "mode=editaction&docs=work&viewflg=html&contents=aaaaaaaaaaa"
     



    2. 아파치(apache) dumpio 모듈

     
    DumpIOInput On
    DumpIOLogLevel debug
    LogLevel debug
     


    http://coffeenix.net/bbs/viewtopic.php?p=5824 (2009년)에도 썼지만 단점이 많아 이 모듈은 추천하지 않는다.

    - 로그는 error log 파일에 남게되며
    - 로그가 너무 많이 남아서 실용성이 없다. (정말 너무 많다.)
    - 그리고, 어떤 IP를 남기지 않으므로 어디서 요청이 들어온 것인지 알 수 없다.
    - POST만을 위한 모듈이 아니므로, GET 요청의 경우도 Request 값이 상세하게 로그로 남는다.


    3. 아파치 dumpost 모듈

    POST 데이터를 로그로 남기는 mod_dumpost 모듈( https://github.com/danghvu/mod_dumpost )을 설치한다.

     
    DumpPostHeaderAdd Content-Type
    DumpPostLogFile /LOG/httpd-post.log
     


    - DumpPostHeaderAdd : 로그에 추가로 남길 헤더를 지정한다. 여러 헤더를 지정할 경우 'Referer Host Cookie Content-Type' 처럼 공백으로 구분하면 된다. 그러나 Content-Type 외에는 지정하지 않는게 좋다. 다른 헤더명까지 지정할 경우 그 헤더가 GET요청에도 포함되어 있다면 GET요청도 로그에 남기 때문이다.
    - DumpPostLogFile   : 로그파일명을 지정한다. 지정하지 않으면 error log에 남긴다. 단, error log에 남을 때는 LogLevel이 Info 이상어야 한다.

    [ 로그 예 ]
     
    [Tue Jan 28 17:36:19 2014] 192.168.123.111 "POST /board/check.html HTTP/1.1" application/x-www-form-urlencoded mode=editaction&docs=work&viewflg=html&contents=aaaaaaaaaaaaa
     

      커피닉스 카페 최근 글
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Mobile 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Web Front 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Server 개발 팀장을 모십니다.
    [12/21] 브라우저별 SHA1 퇴출 시점
    [09/15] [구인] 시스템엔지니어 (경력)
    [08/05] Re: 칼리리눅스 텔넷관련
    [08/04] 칼리리눅스 텔넷관련
    [06/29] 또 다른 무료 SSL 인증서, Let's Encrypt
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~