개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.28 10:15

로그 포맷ting에 대한 질문

목록
  • 로드밸런서연구가 4일 전 2025.03.28 10:15
  • 4
    1
제가 현재 Nginx 서버에서 로그 포맷팅을 사용 중인데, 다음과 같은 로그 포맷팅 옵션을 사용하고 있습니다.

nginx

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

                '$status $body_bytes_sent "$http_referer" '

                '"$http_user_agent" "$http_x_forwarded_for"';



여기서 `$http_x_forwarded_for` 변수는 클라이언트의 IP 주소를 나타내는 변수입니다. 하지만 이 변수는 IP 주소가 여러 개일 때는 여러 IP 주소를 포함하는 문자열로 출력됩니다. 예를 들어, 다음과 같은 로그가 출력됩니다.



192.168.1.100 - - [2023-03-28 14:30:00] "GET / HTTP/1.1" 200 1234 "http://example.com" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.3" "192.168.1.100, 192.168.1.200"



여기서 `$http_x_forwarded_for` 변수는 "192.168.1.100, 192.168.1.200"으로 출력됩니다. 하지만 이 문자열을 IP 주소 목록으로 변환하고 싶습니다. 이 경우 `$http_x_forwarded_for` 변수를 어떻게 사용해야 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  4일 전



    이 문제를 해결하기 위해서는 `$http_x_forwarded_for` 변수를 분리하여 IP 주소 목록으로 변환해야 합니다. 이를 위해 `split` 함수를 사용할 수 있습니다.

    로그 포맷팅 옵션을 다음과 같이 수정하면 됩니다.

    
    
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    
    
                    '$status $body_bytes_sent "$http_referer" '
    
    
                    '"$http_user_agent" "${http_x_forwarded_for#"}" '
    
    
                    'split($http_x_forwarded_for, ",")'';
    
    


    이 옵션을 사용하면 `$http_x_forwarded_for` 변수의 IP 주소 목록을 분리하여 로그에 출력됩니다. 예를 들어, 다음과 같은 로그가 출력됩니다.

    
    
    192.168.1.100 - - [2023-03-28 14:30:00] "GET / HTTP/1.1" 200 1234 "http://example.com" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.3" "192.168.1.100, 192.168.1.200"
    
    
        192.168.1.100
    
    
        192.168.1.200
    
    


    이러한 로그 포맷팅 옵션을 사용하면 `$http_x_forwarded_for` 변수의 IP 주소 목록을 분리하여 로그에 출력할 수 있습니다.

    2025-03-28 10:16

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 8,153건 / 39 페이지

검색

게시물 검색