본문 바로가기
네트워크 기초

DevOps Day 25 (4.10) 네트워크 기초_Proxy Server 구현

by Jackykim 2023. 4. 10.

Nginx를 통해 리버스 프록시 (Reverse Proxy) 서버를 작동합니다.

 

Achievement Goals
-
리버스 프록시(Reverse Proxy)와 포워드 프록시(Forward Proxy)에 대해서 이해하고, 특징을 학습합니다.
-
프록시 서버에 사용되는 지시어(directives)를 학습하고, 이를 활용합니다.
-
프록시 서버에서 원 서버로 전달되는 요청 헤더를 설정하는 방법을 학습합니다.
-
프록시 서버의 cache-control 방법과 캐시 관련 지시어 사용법을 확인합니다.

 

Getting Started

1. 프록시 서버 설정 및 생성하기 전에 /etc/nginx 폳더에 있는 nginx.conf 파일 수정 해야합니다.
 -
일단 proxy cache path 설정합니다. CacheVar/cache/nginx 폴더에 저장되며 HTTP 요청 내용들을 2 level directory structure 1시간 동안 사용않한 아이템 (캐시에서) 삭제합니다.
 - http {proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;

 

2. 서버와 프록시 서버 주소 설정

- 서버 호스트는 http://localhost 10026 이지만 모든 요청과 데이터는 Proxy_pass 주소로 갑니다
- Proxy_set_header
통해 원하는 설정들을 추가 할 수 있으며 myname 으로 원하는 이름 표시가 가능합니다
- Proxy_cache_valid 5s
설정으로 캐시 최대 요청시간을 5초로 할 수 있습니다
- Upstream_cache_status
통해 캐시 이슈나 트로블슈팅에 사용 할 수 있습니다. HIT, MISS, EXPIRED 등 다양한 메시지로 문제들을 알 수 있습니다.
- Proxy_set_header X-Real-IP $remote_addr
는 오리지널 클라이언트 Ip주소를 Backend 서버 로 요청이 정상적으로 잘 갈 수 있도록 해주는 헤더입니다.

 

3. Nginx.conf 파일 설정 및 수정 완료 하였으면 sudo Nginx으로 작동합니다.


4. Nginx 작동 후 Curl -I http://localhost:10026 으로 캐시 내용 확인 합니다.

- Localhost에 문제가 없고 캐시 받았을 때 “Hit” 가 표시 되고 5초후 캐시 설정 시간 초과시 “Expired”으로 표시됩니다.

 

5. 브라우저 Localhost:10026 실행 했을 경우 아래와 같이 IP 주소와 설정한 myname 이 표시 됩니다.