리버스 프록시 vs 포워드 프록시, 헷갈리는 개념 한 번에 정리하기

프록시란 무엇인가

프록시(Proxy)는 클라이언트와 서버 사이에서 요청과 응답을 대신 전달해주는 중개자입니다. 클라이언트가 서버에 직접 요청하지 않고 프록시를 거쳐 통신하는 구조인데, 이 중개자가 누구를 대신하느냐에 따라 포워드 프록시와 리버스 프록시로 나뉩니다. 핵심은 ‘어느 쪽 편에 서 있는가’입니다.

포워드 프록시: 클라이언트를 대신하는 프록시

포워드 프록시는 클라이언트 앞에 위치해서 클라이언트를 대신해 서버에 요청을 보냅니다. 서버 입장에서는 실제 클라이언트가 누구인지 모르고, 프록시가 요청한 것처럼 보입니다.

  • 회사 내부망에서 외부 인터넷 접속을 통제할 때
  • 특정 국가의 콘텐츠에 접근하기 위해 IP를 우회할 때
  • 사내 접속 로그를 기록하고 유해 사이트를 차단할 때

비유하자면 포워드 프록시는 ‘심부름을 보내는 대리인’입니다. 여러분이 직접 가게에 가지 않고 대리인을 시켜 물건을 사오게 하면, 가게 주인은 대리인만 보고 여러분이 누군지는 알 수 없습니다. VPN이나 사내 프록시 서버가 대표적인 예시입니다.

리버스 프록시: 서버를 대신하는 프록시

리버스 프록시는 반대로 서버 앞에 위치합니다. 클라이언트는 실제 서버가 아니라 리버스 프록시에 요청을 보내고, 프록시가 내부적으로 적절한 서버에 요청을 전달한 뒤 응답을 다시 클라이언트에게 돌려줍니다. 클라이언트는 뒤에 어떤 서버가 있는지 알 수 없습니다.

실무에서 리버스 프록시는 다음과 같은 이유로 널리 사용됩니다.

  • 로드 밸런싱: 여러 서버에 트래픽을 분산시켜 부하를 줄임
  • 보안: 내부 서버 구조와 IP를 숨겨 직접 공격 노출을 최소화
  • SSL 처리: HTTPS 암호화/복호화를 프록시에서 일괄 처리
  • 캐싱: 자주 요청되는 응답을 저장해 서버 부하 감소

대표적으로 NginxAWS ELB가 리버스 프록시 역할을 합니다. 비유하면 리버스 프록시는 ‘매장의 안내 데스크’와 같습니다. 손님은 안내 데스크에만 요청하고, 데스크는 뒤에 있는 여러 담당자 중 누구에게 일을 맡길지 알아서 결정합니다. 손님은 실제로 누가 일을 처리했는지 알 필요가 없습니다.

정리하면 포워드 프록시는 클라이언트를 보호하고 대신 요청하는 역할, 리버스 프록시는 서버를 보호하고 대신 응답하는 역할을 합니다. 같은 ‘중개자’지만 보호 대상이 다르다는 점이 두 개념을 구분하는 핵심입니다.

댓글 남기기