로드밸런서 이용 시 웹서버에서 X-forwarded-for(XFF) 등 클라이언트 IP(source ip)를 확인할 수 있습니다. XFF는 HTTP 헤더 중 하나로 Client IP를 식별하기 위한 표준 정보입니다. 로드밸런서 사용할 경우 클라이언트 IP가 변경되기 때문에 XFF가 필요합니다. 단, HTTP 프로토콜을 사용할 경우에만 XFF를 확인할 수 있습니다.
*순 서
* 참고. 웹 소스에서 XFF 활용 예시
1) httpd.conf의 LogFormat의 빨간 박스 부분을 다음과 같이 수정합니다.
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined |
2) 아래 명령어를 입력해 아파치를 재가동합니다. 재가동 후 로그에서 소스 IP를 확인할 수 있습니다.
Service httpd restart |
1) PHP
$headers = apache_request_headers(); $real_client_ip = $headers["X-Forwarded-For"]; |
2) JSP
<%= request.getHeader("X-FORWARDED-FOR") %> |
3) Spring
HttpServletRequest req =((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest(); String client_ip = req.getHeader("X-FORWARDED-FOR");. |