정의
리버스 프록시(Reverse Proxy)는 인터넷 사용자와 실제 웹 서버 사이에서 요청을 대신 받아 넘겨주는 중개 서버예요. 방문객이 내부 시스템에 직접 접근하지 못하도록 막으면서, 여러 대의 서버로 일을 골고루 나누고 사이트 보안과 속도를 함께 높여주는 관문 역할을 해요.
호텔 로비의 안내 데스크를 떠올려 보세요
손님이 호텔에 들어서면 객실이나 조리실로 마음대로 곧장 걸어 들어가지 않아요. 1층 로비의 안내 데스크에 들러 용건을 말하면, 직원이 적절한 방을 배정하거나 담당 부서에 연락을 취해 필요한 서비스를 제공하죠.
많은 웹사이트, 특히 규모가 큰 서비스는 이와 비슷한 방식으로 움직여요. 여러분이 스마트폰이나 컴퓨터로 웹사이트를 열 때, 실제 데이터와 프로그램이 돌아가는 본체 컴퓨터(웹 서버)와 곧바로 연결되지 않는 경우가 많아요. 입구에 든든하게 버티고 선 리버스 프록시가 손님의 요청을 먼저 반갑게 맞이해요.
우리가 흔히 들어본 프록시(포워드 프록시)는 손님 편에 서서 손님의 신분을 감춰주는 대리인 역할을 해요. 반대로 리버스 프록시는 서버 쪽 문앞을 지키는 문지기로서, 내부의 진짜 서버들이 어디에 몇 대나 있는지 외부에 드러나지 않도록 꽁꽁 숨겨주는 역할을 맡아요.
문지기를 두면 무엇이 좋아질까요?
가장 먼저 얻는 혜택은 강력한 보안이에요. 해커는 리버스 프록시 뒤에 숨어 있는 진짜 서버의 실제 주소(IP 주소)를 파악하기 어려워요. 다만 예전 기록이나 설정 실수로 주소가 새어 나가는 경우도 있어요. 외부에서 들어오는 디도스 공격이나 수상한 악성 요청을 문지기 서버가 1차 방어선에서 걸러 줄 수 있어서, 핵심 시스템을 지키는 데 도움이 돼요.
손님이 물밀듯이 몰려올 때 일손을 나누는 일도 척척 해내요. 한 대의 서버에만 주문이 쏟아져 먹통이 되지 않도록, 뒤편에 마련된 여러 대의 서버에 일을 골고루 분배하는 부하 분산(로드 밸런싱)을 수행해요.
게다가 방문객들이 자주 찾는 이미지나 웹페이지를 프록시가 기억해 두었다가 즉시 꺼내주는 '캐싱' 기술도 발휘해요. 복잡한 계산을 거칠 필요 없이 문지기가 문앞에서 바로 물건을 건네주니, 사용자가 화면을 마주하는 응답 속도가 눈에 띄게 빨라져요.
조금 더 정확히 말하면
리버스 프록시는 복잡한 보안 자물쇠를 열고 닫는 암호화 작업(SSL/TLS 처리)을 맡기도 해요. 많은 경우 사용자와 주고받는 암호화된 데이터를 프록시가 전면에서 대신 풀어주고, 내부 망에 연결된 서버들에는 풀린 상태로 넘겨주어 내부 서버의 연산 부담을 덜어줘요. 다만 설정에 따라 암호를 풀지 않고 그대로 넘기거나, 보안을 위해 안쪽 구간을 다시 암호화하기도 해요.
또한 사이트 점검이나 새 기능 업데이트를 진행할 때도 유용하게 쓰여요. 서버를 잠시 꺼야 할 때도 손님에게 오류 화면을 보여주지 않고, 정상 작동 중인 다른 서버로 경로를 조용히 돌려주는 무중단 배포를 도와줘요.
오늘날 우리가 일상적으로 사용하는 거대 포털 사이트나 쇼핑몰 앱은 Nginx나 HAProxy 같은 소프트웨어나 Cloudflare 같은 서비스를 리버스 프록시로 써서 수억 건의 트래픽을 안전하고 매끄럽게 처리하고 있어요.
흔한 오해
리버스 프록시와 일반 프록시(포워드 프록시)는 이름만 다르고 완전히 같은 것이다.
포워드 프록시는 사용자를 대리하여 사용자의 신분을 숨기지만, 리버스 프록시는 서버를 대리하여 서버의 실제 위치와 내부 구조를 숨겨요. 보호하고자 하는 주체가 정반대예요.
일상에서 만나요
접속자가 폭주하는 대학교 수강신청 사이트에서 트래픽을 여러 서버로 쪼개어 분산시킬 때 사용돼요.
해커의 직접적인 공격으로부터 데이터베이스와 주요 웹 서버를 감추기 위해 입구에 설치해요.
그러니까 한마디로
리버스 프록시는 서버 앞단에서 요청을 대신 받아 보안을 지키고 부하를 나눠주는 스마트한 문지기 서버예요.