proxy_사용시_client_real_ip_기록_설정

문서의 이전 판입니다!


Proxy 사용시 Client Real IP 기록 설정

앞단에 Proxy / WEB서버 또는 방화벽이나 L4를 통해서 서비스를 하게 될 경우 로그에 찍히는 Client IPrequest.getRemoteAddr() 에서 실제 사용자의 IP주소가 아니라 앞단의 중계서버 IP가 찍히게 되는 경우가 있다.

이런경우 아래와같이 server.xmlRemoteIpValve를 선언하여 처리해주도록 한다.

<Host name="localhost"  appBase="webapps"
      unpackWARs="true" autoDeploy="true">

  <!-- [추가] 프록시 IP를 처리할 RemoteIpValve -->
  <Valve className="org.apache.catalina.valves.RemoteIpValve"
         internalProxies="192\.168\.0\.5"
         remoteIpHeader="x-forwarded-for"
         proxiesHeader="x-forwarded-by"
         protocolHeader="x-forwarded-proto" />

  <!-- [기존 유지] AccessLogValve (패턴의 %h 또는 %a가 실제 IP로 자동 교체됨) -->
  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
         prefix="localhost_access_log" suffix=".txt"
         pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>

internalProxies 에 앞단의 프록시 서버 아이피를 등록해주면 해당 아이피에서 요청하는 건에 대해서는 x-forwarded-for 값을 실제 IP값으로 치환해준다.

  • proxy_사용시_client_real_ip_기록_설정.1788877718.txt.gz
  • 마지막으로 수정됨: 2026/09/08 14:28
  • 저자 koov