메뉴 건너뛰기

SayClub.org

리눅스(Linux)

Nginx는 서버 블록 (Apache의 가상 호스트)을 수행 할 수 있는 기능이 있지만 프록시 헤더 내에서 IP 주소를 전달해야 할 때 문제가 발생합니다.

프록시 서버 뒤에 위치한 서버들에서는 실제 방문자의 IP가 아닌 프록시 서버의 IP만 보인다는 점입니다.

하지만 해결책이 있습니다.

 

※ 프록시 서버 구성 편집

(Docker 사용 경우 - <path to nginx-proxy-manager>/data/nginx/default_host/site.conf)

 

먼저 프록시 서버(프론트엔드)에 있는 프록시 서버 블록을 편집합니다. 기본적으로 내 모습은 다음과 같습니다.

 

## redirect uname.in to https

server {

  listen      80 default_server;

  server_name uname.in;

  return 301 https://uname.in;

}

 

## redirect www prefix to https

server {

  listen      80;

  server_name www.uname.in;

  return 301 https://www.uname.in;

}

 

server {

  #listen 80;

  listen 443 ssl default_server;

  server_name uname.in;

  ssl_certificate /etc/nginx/ssl/uname.in.crt;

  ssl_certificate_key /etc/nginx/ssl/uname.in.key;

 

  location / {

    proxy_set_header  Host $host;

    proxy_set_header  X-Real-IP $remote_addr;

    proxy_set_header  X-Forwarded-Proto https;

    proxy_set_header  X-Forwarded-For $remote_addr;

    proxy_set_header  X-Forwarded-Host $remote_addr;

    proxy_pass        http://wp.uname.in;

  }

}

 

다음 세 줄을 포함하는 것이 매우 중요합니다.

Host : 프록시 서버의 이름과 포트.

X-Real-IP : 방문자의 IP 주소를 가상 호스트로 보냅니다.

X-Forwarded-For : 방문자의 IP 주소를 가상 호스트로 보냅니다.

 

※ 프록시 되는 서버 구성 편집

(/etc/nginx/sites-available/default)

 

이제 프록시 서버(백엔드)의 구성에서 서버 블록 내에 아래 3개의 중요한 행을 포함해야 하지만 위치 블록 외부에 있어야 합니다.

 

server {

    #other junk here blah blah

    set_real_ip_from 10.0.0.0/8;

    real_ip_header X-Real-IP;

    real_ip_recursive on;

 

    location / {

       #some junk here

    }

}

 

세 줄은 다음과 같습니다.

 

set real ip_from : nginx가 이 범위 내의 프록시 서버에서 실제 방문자의 IP를 가져 오도록 지시합니다. 10.0.9.2와 같은 고정 IP 주소 일 수도 있습니다.

real_ip_header : nginx는 주어진 주소에서 클라이언트의 IP 주소를 선택합니다.

real_ip_recursive : 프록시 서버의 IP가 방문자의 IP 주소로 대체됩니다.

번호 제목 글쓴이 날짜 조회 수
75 Rocky Linux 및 NetworkManager를 사용한 정적 경로 설정 미르다테 2025.04.03 15
74 Ubuntu 22.04 LTS 패키지 업데이트 시 오류 해결 방법 미르다테 2025.02.19 22
73 우분투 리눅스(Ubuntu Linux)에서 Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. 오류 해결 방법 미르다테 2025.02.09 27
72 연속적으로 명령 실행시키기 (;과 &와 &&의 차이) 미르다테 2025.02.03 37
71 내 공인IP 확인하기(스크립트) 미르다테 2025.02.02 21
70 리눅스 네트워크 설정(Debian 계열, Ubuntu) 미르다테 2025.01.16 25
69 우분투(Ubuntu) 리눅스 apt 패키지 설치 이력 확인 미르다테 2025.01.14 110
68 Rocky Linux 9 고정 라우팅 경로 설정 방법 미르다테 2025.01.10 115
67 Rocky Linux 9에 Webmin 설치하는 방법 미르다테 2025.01.07 107
66 라이믹스(Rhymix) 애드온 '링크 프리뷰' 설치정보 미르다테 2025.01.06 108
65 Rocky Linux 9에 FFmpeg를 설치하는 방법 미르다테 2025.01.06 100
64 Ubuntu 24.04에 Webmin을 설치하는 방법 미르다테 2024.12.31 96
63 Ubuntu 24.04 LTS에 Docker 설치하기 미르다테 2024.12.31 122
62 Rocky Linux Docker, Docker Compose 설치 방법 미르다테 2024.12.30 109
61 라이믹스(Rhymix) 백업 및 복원 방법 미르다테 2024.12.30 117
60 Rocky Linux - 라이믹스(Rhymix) 설치하기 미르다테 2024.12.30 89
59 Rocky Linux 비밀번호 입력 초과로 인한 계정잠김 확인 및 해제 방법 미르다테 2024.12.30 98
58 Arch Linux mirrorlist 갱신하기 미르다테 2024.12.30 112
57 [중요] RedHat 계열 리눅스 서버 취약점 조치 방법 정리 - MirDaTe 미르다테 2024.12.30 102
56 [Arch Linux] pacman을 사용하여 시스템 업그레이드 시 패키지 손상으로 인한 업그레이드 안되는 증상 해결방법 미르다테 2024.12.30 125
위로