MOYOMOYO
모요 · PERSONAL BLOG

MOYO

생각과 경험을 기록하는 공간입니다.

← 글 목록

NGINX 에서 클라이언트IP가 로컬IP로 인식되지 않도록 설정

모요조회 5댓글 0

/var/log/nginx/error.log 를 보면, 아래와 같이 클라이언트IP가 로컬 IP로 표시되서 인바운드되는 IP를 추적할 수 없는 경우가 있다. 이런 경우 동일IP에서 계속해서 로그인 시도를 하는 경우를 판단하기 어렵게 되기 때문에 클라이언트IP는 제대로 표시되도록 하는 것이 좋다.

while reading response header from upstream, client: 127.0.0.1, server

실제로 이 요청이 들어온 클라이언트의 IP를 표시하려면 Nginx의 설정에서 다음과 같이 설정해야 합니다:

  1. Real IP 모듈 설정: Nginx에서 클라이언트의 실제 IP 주소를 로깅하기 위해서는 ngx_http_realip_module을 사용해야 합니다. 이 모듈은 클라이언트 IP를 실제 요청을 보낸 클라이언트의 IP로 변경할 수 있도록 해줍니다.
  2. 설정 파일 변경: Nginx의 설정 파일(/etc/nginx/nginx.conf 또는 /etc/nginx/sites-available/default 등)에서 다음과 같이 설정합니다.

    http {
    # real_ip module settings
    set_real_ip_from 127.0.0.1;
    # 로컬 네트워크나 로드 밸런서의 IP를 설정
    real_ip_header X-Forwarded-For;
    # 실제 IP 주소를 담고 있는 헤더를 설정 (예: X-Forwarded-For)
    # ...
    server {
    # ...
    location / {
    # ...
    }
    }
    }

    위 설정에서 set_real_ip_from은 실제 IP를 전달하는 네트워크나 장치의 IP 주소를 설정합니다. real_ip_header는 클라이언트의 실제 IP 주소를 포함하고 있는 헤더를 지정합니다. 일반적으로 로드 밸런서를 통해 들어오는 요청의 경우 X-Forwarded-For 헤더를 사용합니다.
  3. Nginx 재시작: 설정 파일을 변경한 후에는 Nginx를 재시작하여 변경 사항을 적용합니다.

    sudo systemctl restart nginx

이렇게 설정한 후에는 로그에서 클라이언트의 실제 IP 주소가 제대로 표시될 것입니다.

#NGINX #REAL_IP설정 #REAL_IP

로그인 후 좋아요

댓글 0

등록된 댓글이 없습니다.