Forward Proxy와 Reverse Proxy

클라이언트 대리와 서버 대리

Forward Proxy는 클라이언트 대리, Reverse Proxy는 서버 대리. CORS는 브라우저가 막는 규칙이라 같은 도메인 프록시를 거치면 우회할 수 있다.

Proxy

개념

프록시는 클라이언트와 서버 사이의 중간 노드다. 둘 다 "요청을 대신 받아 전달한다"는 점은 같지만, 누구 편에 서느냐가 다르다.

  • Forward Proxy — 클라이언트 앞에 위치, 클라이언트를 대리 ("내 대신 나가줘")
  • Reverse Proxy — 서버 앞에 위치, 서버를 대리 ("내 대신 받아줘")
Forward Proxy:  클라이언트 → [Forward Proxy] → 서버
Reverse Proxy:  클라이언트 → [Reverse Proxy] → 서버

왜 구분하나

두 프록시는 생김새는 비슷한데 해결하는 문제가 다르다. Forward Proxy는 클라이언트의 익명성·우회·콘텐츠 필터링이 주 목적이고, Reverse Proxy는 서버 보호·로드밸런싱·TLS 종료가 주 목적이다. 이름을 섞어 쓰면 누가 누구 편인지 모르게 돼서 설계가 꼬인다.

Reverse Proxy 쓰는 이유

  • 보안 — 백엔드를 직접 노출 안 함
  • 인증/인가 중앙화 — 토큰 검증, 권한 체크를 한 곳에서
  • 라우팅/api/hr/* → HR 서비스, /api/dmp/* → DMP 서비스
  • 공통 기능 — 로깅, Rate Limit, CORS, 헤더 정리
  • 확장성 — 로드밸런싱, 캐시, 장애 격리

실제 사용 예시

  • Forward Proxy — 회사 내부에서 외부 접속을 대행·필터링, Next.js dev 서버에서 CORS 해결
  • Reverse ProxyNginx가 대표적. 앞단에서 TLS 종료하고 내부 서비스로 분배

CORS 해결에 프록시를 쓰는 이유

  • CORS브라우저가 막는 규칙이지 서버가 막는 게 아님
  • 브라우저 → 같은 도메인 프록시 서버로 요청 → CORS 안 걸림
  • 프록시 서버 → 다른 도메인 서버로 요청 → 서버끼리는 CORS 없음
  • 결국 브라우저 입장에선 "전부 같은 출처"로 보여서 CORS 우회가 됨

더 보기

  • Nginx — Reverse Proxy의 대표 구현
  • Upstream-Downstream-Hop — 프록시에서 흐름 방향을 가리키는 용어
  • CORS — 브라우저의 Cross-Origin 차단 정책
  • API-Gateway — Reverse Proxy + 인증/인가가 얹힌 확장 형태
sunshinemoon · 2026