티스토리 뷰
728x90
🧭 1. 프록시(Forward Proxy)란?
프록시는 클라이언트의 대리인 역할을 하는 서버입니다.
즉, 사용자가 어떤 웹사이트에 접속할 때, 직접 접속하지 않고 프록시 서버를 통해 접속합니다.
🔄 흐름도
[클라이언트] → [프록시 서버] → [목적지 서버]
📌 주요 목적
목적 | 설명 |
익명성 | 클라이언트의 IP 주소를 숨김 (프록시 서버의 IP로 요청) |
접근 제어 | 특정 사이트 차단 등 정책 설정 가능 (예: 회사에서 유튜브 차단) |
캐싱 | 자주 사용하는 리소스를 프록시 서버에 저장해 빠르게 응답 |
트래픽 모니터링 | 내부 사용자들의 웹 활동을 분석 가능 |
우회 접속 | 특정 국가에서 접속이 제한된 콘텐츠를 다른 IP로 우회 |
🧪 예시 상황
- 기업 내부에서 직원들이 외부 인터넷에 접근할 때 프록시 서버 사용
- 사용자가 개인 VPN을 설정하여 특정 국가의 IP로 접속
- 스쿨넷에서 특정 사이트 차단
🧭 2. 리버스 프록시(Reverse Proxy)란?
리버스 프록시는 서버의 대리인 역할을 합니다.
즉, 사용자는 서버에 요청을 보내는 것처럼 보이지만, 실제로는 리버스 프록시가 요청을 받아 서버로 전달합니다.
🔄 흐름도
[클라이언트] → [리버스 프록시] → [백엔드 서버들]
📌 주요 목적
목적 | 설명 |
로드 밸런싱 | 여러 백엔드 서버로 요청 분산 (scale-out) |
SSL 종료 | HTTPS 요청을 리버스 프록시에서 처리하고 내부는 HTTP로 통신 |
보안 강화 | 서버 IP 숨김, DDoS 차단, WAF 기능 연계 |
캐싱 | 자주 요청되는 정적 콘텐츠를 미리 응답 |
URL 라우팅 | 도메인/경로 기반으로 서로 다른 서비스에 전달 (/api → 서비스 A, /app → 서비스 B) |
🧪 예시 상황
- Nginx 리버스 프록시가 /api 요청은 Spring Boot API 서버로, /static 요청은 정적 서버로 전달
- Cloudflare가 웹사이트 트래픽을 받아 공격 차단 후 백엔드로 전달
- AWS Application Load Balancer(ALB)가 HTTP 요청을 여러 컨테이너로 라우팅
🆚 프록시 vs 리버스 프록시 비교 요약
항목 | 프록시 (Forward Proxy) | 리버스 프록시 (Reverse Proxy) |
위치 | 클라이언트 앞단 | 서버 앞단 |
주 대상 | 클라이언트 보호/통제 | 서버 보호/부하 분산 |
요청 흐름 | 클라이언트 → 프록시 → 서버 | 클라이언트 → 리버스프록시 → 서버 |
IP 숨김 | 클라이언트 IP 숨김 | 서버 IP 숨김 |
주 용도 | 인터넷 접속 통제, 캐싱, 필터링, 보안 | 로드 밸런싱, SSL 종료, WAF, 캐싱, 보안 |
대표 도구 | Squid, VPN, 브라우저 프록시 설정 | Nginx, Apache HTTPD, Envoy, Cloudflare, HAProxy |
🌐 그림으로 비교
[프록시]
사용자 --요청--> 프록시 서버 --요청--> 구글/네이버
[리버스 프록시]
사용자 --요청--> 리버스 프록시 --요청--> 내부 백엔드 서비스
💬 실무에서는?
- MSA 환경에서 대부분 리버스 프록시를 사용합니다.
- 예: Ingress Controller (Kubernetes) → 리버스 프록시의 대표적인 형태
- nginx.conf에서 proxy_pass 설정을 많이 볼 수 있어요.
728x90
'기타' 카테고리의 다른 글
NSX-ALB에서의 "프록시 역할"이란? (0) | 2025.03.26 |
---|---|
VMware NSX-ALB (Avi Load Balancer) 외부 api 전달 (0) | 2025.03.26 |
MongoDB 리플리카셋(replicaSet) 이란? (0) | 2025.03.25 |
NGINX vs Caddy: 기능별 상세 비교 (0) | 2025.03.25 |
WSL(Windows Subsystem for Linux) (0) | 2025.03.20 |