
X-Forwarded-For(XFF) 란?
XFF는 Http Header 중 하나로 HTTP Server에 요청한 Client의 IP를 식별하기 위한 표준
웹서버나 WAS 앞에 L4 같은 로드 밸런서나 Proxy Server, Caching Server 등의 장비가 있을 경우, 웹서버는 Proxy server나 다른 장비 IP에서 접속한 것으로 인식한다.
클라이언트 IP -> Proxy 서버 및 장비 -> 웹 서버
X-Forwarded-For HTTP Hearder 에 있는 클라이언트 IP 를 찾아 실제 요청한 클라이언트 IP 를 알 수 있고, 웹로그에도 실제 요청한 클라이언트 IP 를 남길 수 있다.
X-Forwarded-For 는 다음과 같이 콤마를 구분자로 Client 와 Proxy IP 가 들어가게 되므로 첫번째 IP 를 가져오면 클라이언트를 식별할 수 있다.
X-Forwarded-For: client, proxy1, proxy2
WebtoB 설정
[$WEBTOBDIR/config/http.m]
*LOGGING
log1 Format = "%h %l %u %t \"%r\" %>s %b %{X-Forwarded-For}i %{Referer}i"
FileName = "/backup/webtob/log/access_%Y%%M%%D%.log", Option="sync"
Option = "sync"
*LOGGING.Format에서 "%{HTTP_HEADER_FIELD}i"는 Client Request 중 해당되는 HTTP header field를 그대로 로그에 남기는 지시문이다.
X-Forwarded-For 를 사용하면 실제 클라이언트 IP 확인이 가능하다.
Referer -> URI를 획득했던 이전 URI를 Web Server에 알려주는 역할을 한다.

*NODE.RPAFHeader = "X-Forwarded-For"와 같이 설정하면, WebtoB로 들어오는 HTTP 요청에서 Proxy 등을 거치면서 변경된 Remote IP에 Proxy 서버의 IP가 아닌 원래 요청이 발생된 Host IP로 설정할 수 있다.

설정 후 page를 호출하여 개발자 도구 (f12) 에서 Remote Address REAL IP를 확인 할 수 있다.
'MiddleWare > WebtoB' 카테고리의 다른 글
| [WebtoB] Shared Memory 에러 해결 방법 (0) | 2022.10.11 |
|---|---|
| [WebtoB] curl로 Content-Encoding: gzip 확인 (0) | 2022.09.21 |
| [WebtoB] DOCROOT, URI, EXT, GotoEXT 설정 (0) | 2022.08.10 |
| [WebtoB] TRACE LOG 설정 (0) | 2022.08.04 |
| [WebtoB] SSL 인증서 생성 및 적용 (0) | 2022.08.01 |