프록시 vs 리버스 프록시
클라이언트 앞에 서는 포워드 프록시와 서버 앞에 서는 리버스 프록시를 같은 3노드 무대에서 실행해, '누가 누구를 못 보게 되는가'로 차이를 보여준다.
1 / 8둘 다 '중간에 서는 서버'지만 누구 편에 서느냐가 다릅니다. 포워드 프록시는 클라이언트 앞에, 리버스 프록시는 서버 앞에 섭니다.
사내 PC10.0.0.7
포워드 프록시클라이언트 편
외부 서버example.com
외부 서버가 보는 발신자: —
단계 목록 · 키보드 ←/→ 이동, Space 재생
포워드 프록시는 클라이언트를 대변해 서버로부터 클라이언트를 숨기고, 리버스 프록시는 서버를 대변해 클라이언트로부터 서버들을 숨긴다 — 같은 중개자, 반대 방향.
왜 헷갈리는가
nginx가 양쪽 다 될 수 있어서 '프록시 = nginx = 로드밸런서'로 뭉뚱그려진다. 방향이 다르면 목적·설정·보안 함의가 전부 다르다 — 사내 통제 장비와 서비스의 정문은 같은 물건이 아니다.
애니메이션이 보여주는 것
포워드 장면에서 외부 서버가 보는 발신자는 프록시의 IP뿐이다 — 클라이언트가 익명화된다. 그래서 용도가 사내망 통제(차단 목록·감사 로그), 캐시, 크롤러의 IP 로테이션이다. 클라이언트가 프록시의 존재를 알고 설정한다.
리버스 장면에서는 반대로 사용자가 내부 서버(web-2)의 존재를 모른다 — shop.com이라는 얼굴 뒤에 서버 무리가 숨는다. TLS 종료, 로드 밸런싱, 캐시, WAF, 압축이 전부 이 자리에서 일어난다. 사용자는 프록시의 존재조차 모른다.
현업 지도
이름은 달라도 자리는 둘 중 하나다.
- 리버스 프록시 자리: nginx/HAProxy, 클라우드 ALB, CDN(엣지 전체가 거대한 리버스 프록시), API 게이트웨이, k8s Ingress, 서비스 메시의 사이드카(Envoy).
- 포워드 프록시 자리: 회사 방화벽의 웹 프록시, Squid, 국가 검열 장비, VPN/Tor(넓게 보면), 스크레이핑용 프록시 풀, egress 게이트웨이(나가는 트래픽 통제).
- 판별법: 설정을 누가 하는가 — 클라이언트가 프록시 주소를 설정하면 포워드, DNS가 프록시를 가리키면 리버스.
- X-Forwarded-For: 리버스 프록시 뒤의 서버가 진짜 클라이언트 IP를 알기 위한 관례 헤더 — 신뢰 경계 설정을 틀리면 IP 스푸핑 구멍이 된다.
기억할 것
- 포워드 = 클라이언트 편(서버가 클라이언트를 모름), 리버스 = 서버 편(클라이언트가 서버를 모름).
- 설정 주체로 판별: 클라이언트가 설정하면 포워드, DNS가 가리키면 리버스.
- CDN·게이트웨이·Ingress·사이드카 — 현대 인프라의 리버스 프록시는 한 겹이 아니라 여러 겹이다.
- 리버스 프록시 뒤에서는 X-Forwarded-For 신뢰 경계를 반드시 설계한다.