나의 잡다한 노트 및 메모
peanutwalnut
« 2025/04 »
일 |
월 |
화 |
수 |
목 |
금 |
토 |
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|
관리 메뉴
나의 잡다한 노트 및 메모
nginx 설정 중 proxy 관련 설정 본문
1. proxy_set_header Host $host;
- 목적:
백엔드 서버에 전달되는 Host 헤더를 프록시가 수신한 원래의 호스트(도메인) 값으로 설정합니다.
- 작동 방식:
- $host는 클라이언트가 요청 시 사용한 호스트 이름(예: example.com) 또는 IP 주소를 의미합니다.
- 이를 통해 백엔드 서버는 원래 클라이언트가 어떤 호스트로 요청했는지를 정확히 인지할 수 있습니다.
- 백엔드 서버가 가상 호스팅(도메인별 설정) 등을 사용하는 경우, 올바른 도메인 정보를 알아야 정상적으로 동작합니다.
2. proxy_set_header X-Real-IP $remote_addr;
- 목적:
백엔드 서버가 클라이언트의 실제 IP 주소를 알 수 있도록, X-Real-IP 헤더에 클라이언트의 원 IP를 전달합니다.
- 작동 방식:
- $remote_addr는 Nginx가 수신한 실제 클라이언트 IP 주소입니다.
- 백엔드 서버는 일반적으로 프록시로부터 들어온 요청의 소스 IP를 보면 127.0.0.1(프록시 서버) 등으로 인식할 수 있으나, 이 헤더를 통해 원본 클라이언트 IP를 식별할 수 있습니다.
3. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- 목적:
여러 개의 프록시를 거쳐서 온 경우에도, 백엔드 서버가 클라이언트의 전체 경로를 알 수 있도록 X-Forwarded-For 헤더를 설정합니다.
- 작동 방식:
- $proxy_add_x_forwarded_for는 기존 X-Forwarded-For 헤더에 $remote_addr(현재 프록시가 인지한 클라이언트 IP)를 추가하여 전달합니다.
- 이렇게 하면 요청이 어떤 IP를 거쳐 왔는지 프록시 체인을 추적할 수 있습니다.
4. proxy_set_header X-Forwarded-Proto $scheme;
- 목적:
백엔드 서버가 클라이언트의 프로토콜(HTTP or HTTPS) 정보를 알 수 있도록 X-Forwarded-Proto 헤더에 설정합니다.
- 작동 방식:
- $scheme는 Nginx가 인지한 현재 요청 프로토콜(예: http 또는 https)을 나타냅니다.
- 백엔드가 리다이렉트 생성, URL 생성 시 올바른 프로토콜을 사용하도록 도와줍니다. 예: “https로 접속했는데, 백엔드가 http 주소로 리다이렉트하는 문제”를 방지.