반응형
NGINX에서 제공하는 디지털 트레이닝 코스 수강 하면서 정리한 내용이다.
1. Proxy
- Forward Proxy : Client Side에서 실제 요청한 Client를 숨기고, 그를 대신해 요청을 전달.
- Reverse Proxy : Server Side에서 실제 Backend Server를 숨기면서 그 역할을 대신 수행.
2. Reverse Proxy 설정을 위한 Directive
- Syntax : proxy_pass ;
- 수신된 Request를 으로 정의된 backend server의 URL로 전달
- 의 address는 Domain name, IP Address&port number, unix socket, upstream name, 변수 집합으로 구성될 수 있다.
- ex)
location / { proxy_pass http://192.168.100.1:9001/api; }
- Remark : 일반적으로 proxy_pass는 server 및 location context에서만 사용됨.
3. Redefining Request Headers
- Syntax : proxy_set_header <new_value>;
- NGINX가 Reverse Proxy로 동작할 때, Backend Server와 연결되기전 Client와의 연결을 종료시키는데 이 과정에서 Client에 대한 몇 정보가 소실됨.
- 소실되는 정보 중 Backend Server에서 유용할 수 있는 정보를 재정의하는 과정 필요.
- Ex)
- Line 3 : Client 요청 중 Header의 Host값을 Backend Server로 전달할 때 그대로 Host 값으로 사용
- Line 4 : 요청한 Client의 주소($remote_addr)를 X-Real-IP라는 이름의 Header로 재정의
- Line 5 : Proxy가 2개 이상 사용됐을 경우에 X-Forwarded-For로 정의되는 Header와 클라이언트의 주소를 계속 중첩해서 재정의
server { listen 80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ... location / { proxy_pass http://192.168.100.1:9001/api; } }
'DevOps > NGINX' 카테고리의 다른 글
NGINX MSA 디지털 트레이닝 - 6강 : NGINX App Protect - WAF (1) | 2022.04.02 |
---|---|
NGINX MSA 디지털 트레이닝 - 5강 : Kubernetes NGINX Ingress Controller (1) | 2022.03.30 |
NGINX MSA 디지털 트레이닝 - 4강 : API Gateway (1) | 2022.03.21 |
NGINX MSA 디지털 트레이닝 - 3강 : Load Balancing (1) | 2022.03.13 |
NGINX MSA 디지털 트레이닝 - 1강. Context Logic (1) | 2022.02.26 |