X-Real-IPX-Real-IP는 프록시가 판단한 '실제 클라이언트 IP' 하나만을 담아 백엔드에 전달하는 비표준 관행 헤더입니다. 여러 IP를 체인으로 담는 X-Forwarded-For와 달리 단일 값이라는 점이 특징입니다.
nginx 등에서 `proxy_set_header X-Real-IP $remote_addr;`처럼 설정해, 백엔드가 파싱 없이 곧바로 방문자 IP를 쓰도록 하는 데 흔히 사용됩니다.
XFF가 `client, proxy1, proxy2`처럼 경로 전체를 나열하는 반면, X-Real-IP는 프록시가 '이게 진짜 클라이언트'라고 결정한 값 하나만 넣습니다. 백엔드 코드가 목록을 파싱하고 신뢰 프록시를 벗겨내는 로직 없이 단일 값을 쓸 수 있어 간편하지만, 그 편의는 '프록시의 결정이 옳다'는 전제 위에 있습니다.
표준이 아니므로 명세가 정한 의미가 없고, 다단 프록시 체인에서 어느 프록시가 무엇을 넣는지에 따라 값이 달라집니다. 중간에 여러 프록시가 있으면 각자 X-Real-IP를 덮어써 원 클라이언트가 아니라 직전 프록시의 IP가 담길 수 있습니다. 따라서 신뢰 경계와 설정을 명확히 통제할 수 있을 때만 신뢰해야 합니다.
보안 위험은 XFF와 동일합니다. 신뢰 경계 밖에서 클라이언트가 `X-Real-IP`를 위조해 보낼 수 있으므로, 최외곽 신뢰 프록시가 이 헤더를 직접 설정(덮어쓰기)하고 외부 유입 값을 무시하도록 구성해야 합니다. 표준 지향이라면 Forwarded를, 관행 호환이 필요하면 XFF를 주로 쓰고 X-Real-IP는 보조로 두는 편이 안전합니다.
X-Real-IP: <client-ip>e.g. X-Real-IP: 203.0.113.7