본문 바로가기

WAS/Tomcat

[Tomcat] AWS ELB 사용시 실제 Client IP 로그에 남기는 방법

반응형

 

1. 현상

AWS ELB 이용시 Tomcat Access Log, Catalina Log에 실제 Client IP가 아닌 ELB IP가 남게 되므로 누가 접속했는지 확인이 안되는 경우가 발생한다. (x-forwarded 헤더 설정 필요)

 

2. 조치 방법

Tomcat "server.xml" 설정 파일 내 아래와 같이 설정

<Valve className="org.apache.catalina.valves.RemoteIpValve"
  internalProxies="192\.168\.0\.10|192\.168\.0\.11"
  remoteIpHeader="x-forwarded-for"
  proxiesHeader="x-forwarded-by"
  protocolHeader="x-forwarded-proto" />

 

※ internalProxies에는 ELB IP 또는 대역을 추가하면 된다. 일반적으로 사설 IP대역으로 설정이 되어 있는 경우 별도 수정을 하지 않아도된다. 

 

[참고]

https://blog.leocat.kr/notes/2019/06/19/spring-config-x-forwerded-headers-in-tomcat

https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/valves/RemoteIpValve.html

 

 

반응형