1. 정의

X-Forwarded-For(XFF) 헤더는 HTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 본래 IP 주소를 식별하기 위한 목적으로 사용되는 헤더다.


2. 배경

클라이언트와 서버 중간에 프록시나 로드 밸런서가 존재하는 경우에는 Access Log(서버 접근 로그)에 프록시나 로드 밸런서의 IP 주소만이 담긴다.

만약 단위 시간당 접속 사용자의 수 등을 파악하고 싶은 경우에는 클라이언트의 본래 IP 주소를 식별할 수 있어야 하는데, 이러한 경우에 X-Forwarded-For 요청 헤더를 사용하면 프록시, 로드밸런서를 거치더라도 클라리언트의 본래 IP 주소를 서버에 전달할 수 있다.


3. 방법

server.xml 내 "pattern="%{X-Forwarded-For}i"를 추가한다.

예시-

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="access_log" suffix=".log"
               pattern="%{X-Forwarded-For}i %h ..." />

4. 참고

  • https://jjhwqqq.tistory.com/212
  • https://sarc.io/index.php/tomcat/1359-aws-elb-tomcat-x-forwarded-for-ip-log