http://www.chlux.co.kr/bbs/board.php?bo_table=board02&wr_id=104
클럭스
클럭스, S/W 프로젝트
www.chlux.co.kr
XFF : HTTP Header 중 하나로 HTTP Server 에 요청한 clinet 의 IP 를 식별하기 위한 사실상의 표준
웹 서버나 WAS 앞에 L4 같은 Load balancers 나 Proxy server(HAProxy), caching server(Varnish), HTTP 서버용 WAS Connector(웹로직 커넥터 - mod_wl, 톰캣 커넥터 - mod_jk 등) 등이 있을 경우, 이런 제품들은 웹서버/WAS 에 HTTP 나 전용 프로토콜(AJP)로 요청을 보낸후에 받은 결과를 가공하여 클라이언트에 재전송하게 됨
이로 인해 처리한 웹 서버나 WAS에서 request.getRemoteAddr(); 등으로 클라이언트 IP를 얻을 경우 L4 나 Proxy 의 IP 를 얻게 되는데 이는 원하는 결과가 아님
X-Forwarded-For는 이 문제를 해결하기 위해 사용하게 되며, 다음과 같이 콤마를 구분자로 client 와 proxy IP 가 들어가게 되므로 첫번째 IP 를 가져오면 클라이언트를 식별할 수 있음
X-Forwarded-For: client, proxy1, proxy2
설정 방법
httpd.conf에 아래와 같이 설정
# 클라이언트 ip로 지정
RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s"
# 외부에서 들어온 프로토콜이 https
RequestHeader set X-Forwarded-Proto "https"
# 클라이언트가 요청한 원래 Host 유지
RequestHeader set X-Forwarded-Host "%{Host}s"
https://httpd.apache.org/docs/current/ko/mod/mod_headers.html#requestheader
mod_headers - Apache HTTP Server Version 2.4
아파치 모듈 mod_headers 이 문서는 최신판 번역이 아닙니다. 최근에 변경된 내용은 영어 문서를 참고하세요. 요약 이 모듈은 HTTP 요청 헤더와 응답 헤더를 조절하고 수정하는 지시어들을 제공한다.
httpd.apache.org
[네트워크] 사용자를 식별하는데 필요한 헤더값을 살펴보자
사용자가 사용한 기기, IP, 프로토콜 등등 사용자를 식별하는데 필요한 값들이 있다.위 값들은 헤더값을 통해 얻을 수 있다.웹 브라우저나 다른 HTTP 클라이언트가 웹 서버에게 자신의 식별 정보
velog.io
set : 요청 헤더를 설정. 같은 이름으로 이미 헤더가 있다면 대체
X-Forwarded-For(XFF) : HTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 원 IP 주소를 식별하는 HTTP 요청 헤더
X-Forwarded-Proto(XFP) : 클라이언트가 프록시 또는 로드 밸런서에 접속하는데에 사용했던 프로토콜(HTTP 또는 HTTPS)이 무엇인지 확인하는 HTTP 요청 헤더
X-Forwarded-Host(XFH) : 클라이언트가 요청한 원래 Host 헤더를 식별하는 HTTP 요청 헤더
로그에 client ip(XFF 설정)를 남기고 싶다면 아래와 같이 설정
%h -> %{X-Forwarded-For}i 로 변경
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
%h : 원격 호스트
%{X-Forwarded-For}i : 요청에 포함된 XFF 헤더 값을 그대로 출력. 없으면 -로 찍힘
'WEB > APACHE' 카테고리의 다른 글
| 26. SSL 인증서 파일 포맷 종류 (1) | 2026.04.22 |
|---|---|
| 25. 한글 파일 안 보이는 문제 (1) | 2026.01.22 |
| 23. ssl 인증서 암호 해제 (0) | 2025.12.23 |
| 22. 작업 중 페이지 설정(ErrorDocument) (0) | 2025.12.23 |
| 21. 디렉토리 리스팅(directory listing) (0) | 2025.12.15 |