아파치 X-Forwarded-For 로그 설정

Jmnote (토론 | 기여)님의 2016년 5월 28일 (토) 15:06 판 (→‎아파치 설정)
아파치 로그 X-Forwarded-For 설정

1 문제상황

  • 아파치 로그에 로드밸런서[1] IP밖에 찍히지 않는다..
  • 실제 클라이언트 IP 주소를 기록하고 싶다.
root@zetawiki:~# cat /var/log/apache2/access.log | cut -d' ' -f-6
... (생략)
135.79.246.70 - - [28/May/2016:14:58:46 +0900] "GET
135.79.246.70 - - [28/May/2016:14:58:46 +0900] "GET
135.79.246.70 - - [28/May/2016:14:58:46 +0900] "GET
135.79.246.70 - - [28/May/2016:14:58:47 +0900] "GET
135.79.246.70 - - [28/May/2016:14:58:48 +0900] "GET

2 사전작업

  • 로드밸런서 측에 클라이언트 IP를 X-Forwarded-For 헤더 정보로 넘겨주는 설정이 되어 있어야 한다.
예: Varnish X-Forwarded-For 설정

3 아파치 설정

  • 아파치 설정 일부를 수정하자.
아래 예시에는 기존의 combined 라인을 주석처리하고 %h%{X-Forwarded-For}i로 변경하였다.
root@zetawiki:~# vi /etc/apache2/apache2.conf
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combine
#LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

4 아파치 재시작

root@zetawiki:~# service apache2 restart
 * Restarting web server apache2                                                    [ OK ]

5 확인

6 참고 자료

  1. 여기서는 varnish
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}