웹서버/Apache

[Tips] L4/프록시 환경에서 클라이언트 IP를 얻는 방법

투칼론 2016. 4. 27. 22:44
반응형


로그에 클라이언트 IP 정보를 로깅하고자 한다면, "X-Forwarded-For"라는 확장 Header 내용을 출력하면 된다.

로그 포맷을 설정하는 방법은 아래와 같다.


기본적으로 로그 포맷은 아래와 같이 설정되어 있다.

LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""

%v : 가상호스트명
%h : 원격 IP 주소


그러나, 웹서버 앞단에 L4 또는 프록시(proxy)가 존재한다면, 원격 IP 주소에 실제 클라이언트 IP 대신 L4 또는 프록시 IP 정보가 출력된다. 실제 클라이언트 IP 정보가 출력되기를 원한다면 아래와 같이 LogFormat을 설정해주면 된다.(노란색글씨 부분 참조)

LogFormat "%v %{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""



HTTP Header 값인 X-Forwarded-For 를 바로 사용한다. X-Forwarded-For 옵션은 기본적으로 제공되는 옵션이므로, 로그 포맷에서 바로 사용 가능하다.