- 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 |