• Nginx http realip 모듈 : https://nginx.org/en/docs/http/ngx_http_realip_module.html
  • ngx_http_realip_module 모듈은 클라이언트 주소와 선택적 포트를 지정된 헤더 필드에 전송된 주소로 변경하는 데 사용
  • ngx_http_realip_module 모듈은 기본적으로 빌드되지 않으며, --with-http_realip_module 구성 매개변수를 사용하여 활성화

  • 구성 예시
    set_real_ip_from  192.168.1.0/24;
    set_real_ip_from  192.168.2.1;
    set_real_ip_from  2001:0db8::/32;
    real_ip_header    X-Forwarded-For;
    real_ip_recursive on;

 

set_real_ip_from 지시자

  • nginx가 지정된 범위 내의 프록시 서버에서 실제 방문자의 IP를 가져 오도록 지시
  • 올바른 대체 주소를 전송하는 것으로 알려진 신뢰할 수 있는 주소를 정의
  • 특수 값인 unix:를 지정하면 모든 UNIX 도메인 소켓이 신뢰
  • 호스트 이름(1.13.1)을 사용하여 신뢰할 수 있는 주소를 지정 가능
  • IPv6 주소는 버전 1.3.0 및 1.2.1부터 지원

  • 문맥 : http, server, location
  • 사용 문법
    ## 문법
    set_real_ip_from address | CIDR | unix:;

 

real_ip_header 지시자

  • nginx는 주어진 주소에서 클라이언트의 IP 주소를 선택
  • 클라이언트 주소를 대체하는 데 사용될 request 헤더 필드 값을 정의
  • 선택적 포트가 포함된 request 헤더 필드 값은 클라이언트 포트(1.11.0)를 대체하는 데에도 사용
  • 주소와 포트는 RFC 3986에 따라 지정 → 참고 자료 : RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax (ietf.org)
  • proxy_protocol 매개변수(1.5.12)는 클라이언트 주소를 프록시 프로토콜 헤더(PROXY protocol header)의 주소로 변경
  • listen 지시어에 proxy_protocol 파라미터를 설정하여 PROXY 프로토콜을 활성화

  • 문맥 : http, server, location
  • 사용 문법
    ## 문법
    real_ip_header field | X-Real-IP | X-Forwarded-For | proxy_protocol;
  • 사용 예시
    ## 기본 설정
    real_ip_header X-Real-IP;

 

real_ip_recursive 지시자

  • 프록시 서버의 IP가 방문자의 IP 주소로 대체
  • 재귀 검색(recursive search)을 사용하지 않으면 신뢰할 수 있는 주소 중 하나와 일치하는 원래 클라이언트 주소가 real_ip_header 지시어로 정의된 request 헤더 필드에 전송된 마지막 주소로 대체
  • 재귀 검색(recursive search)이 활성화된 경우 신뢰할 수 있는 주소 중 하나와 일치하는 원본 클라이언트 주소는 request 헤더 필드에 전송된 마지막 신뢰할 수 없는 주소로 대체
  • real_ip_recursive 지시어는 버전 1.3.0과 1.2.1에 등장

  • 문맥 : http, server, location
  • 사용 문법
    ## 문법
    real_ip_recursive on | off;
  • 사용 예시
    ## 기본 설정
    real_ip_recursive off;

 

ngx_http_realip_module모듈의 내장 변수

1. $realip_remote_addr 변수

  • keeps the original client address (1.9.7)
  • 원래 클라이언트 주소 유지 (1.9.7)

 

2. $realip_remote_port 변수

  • keeps the original client port (1.11.0)
  • 원래 클라이언트 포트(1.11.0)를 유지

 

'Nginx > Nginx 모듈 학습' 카테고리의 다른 글

ngx_http_referer_module 모듈  (0) 2023.09.23
ngx_http_secure_link_module 모듈  (0) 2023.09.23
ngx_http_slice_module 모듈  (0) 2023.09.22
ngx_http_split_clients_module 모듈  (0) 2023.09.22
ngx_http_sub_module 모듈  (0) 2023.09.22

+ Recent posts