리버스 프록시
설명 영상 리버스 프록시 · 1:53
왜 배우는가: 리버스 프록시는 웹서버 앞단에서 원본 서버를 숨기고 부하분산·SSL 종료·캐싱·WAF 연계를 담당하는 기본 보안 구성요소이다. 웹서버 안전 운영을 묻는 4교시 문항과 용어형 1교시 문항에 반복해서 나오므로 정의와 구분 기준을 정확히 익혀야 한다.
출제 이력: 제128회 4교시 2번, 제110회 1교시 8번
1. 한 줄 정의와 핵심 키워드
리버스 프록시는 클라이언트 요청을 내부 서버 대신 받아 처리·전달하고 응답을 반환하여 원본 서버를 보호하는 중간 서버이다.
- 리버스 프록시(Reverse Proxy)
- 원본 서버(Origin Server)
- 업스트림 풀(Upstream Pool)
- SSL/TLS 종료(SSL Termination)
- 로드밸런싱(Load Balancing)
- X-Forwarded-For 헤더
- WAF 연계
- 원본 IP 은닉
2. 개념 풀이
쉬운 말로 하면 리버스 프록시는 웹서버의 문지기이다. 외부 사용자는 프록시의 공개 주소만 보고, 실제 요청을 처리하는 서버는 뒤에 숨어 있다. 포워드 프록시가 내부 클라이언트를 보호하는 것과 반대로, 리버스 프록시는 서버 쪽을 보호한다.
정식 정의는 다음과 같다. 리버스 프록시는 클라이언트에게 일반 서버처럼 보이는 프록시 서버로, 요청을 하나 이상의 원본 서버에 전달하고 그 응답을 마치 프록시에서 직접 온 것처럼 반환하는 장치이다. 클라이언트는 원본 서버의 실제 주소를 알 수 없다.
핵심 용어는 다음과 같다. 원본 서버(Origin Server) 는 실제 애플리케이션을 처리하는 내부 서버다. 업스트림 풀(Upstream Pool) 은 프록시가 요청을 나누어 보내는 백엔드 서버 집합이다. SSL/TLS 종료(SSL Termination) 는 프록시가 암호화 연결을 풀고 내부망은 평문 또는 재암호화로 통신하게 하는 기능이다.
원리적으로 프록시는 연결을 두 개로 나눈다. 클라이언트와 프록시 사이 연결, 프록시와 원본 서버 사이 연결이다. 이 구조 덕분에 원본 IP를 감출 수 있고, 인증서 관리를 한 곳에 모을 수 있으며, 트래픽을 중간에서 검사하거나 조절할 수 있다. 다만 원본 서버가 실제 클라이언트 IP를 알려면 X-Forwarded-For 같은 헤더를 프록시가 추가해야 한다.
3. 등장 배경과 필요성
웹 서비스의 트래픽이 늘면서 한 대의 서버로는 요청을 감당하기 어려워졌다. 여러 서버를 두면 같은 콘텐츠를 나누어 처리할 수 있지만, 클라이언트가 서버마다 주소를 알아야 하는 문제가 생긴다. 리버스 프록시는 이 문제를 단일 진입점으로 해결한다.
보안 측면의 필요성도 커졌다. 원본 서버의 IP가 노출되면 DDoS 공격과 직접 침투의 대상이 된다. 프록시를 앞세우면 공격자가 보는 주소가 프록시로 한정되고, 공격 트래픽을 프록시 단계에서 걸러낼 수 있다. 여기에 SSL 암호화를 프록시 한 곳에서 처리하면 각 서버마다 인증서를 관리하는 부담이 줄어든다.
성능 측면에서는 정적 콘텐츠 캐싱과 데이터 압축이 원본 서버의 부담을 줄인다. 이러한 이유로 리버스 프록시는 웹 아키텍처의 표준 구성요소가 되었다. 다만 프록시 자체가 새로운 공격 표면이 되므로 설계와 설정을 함께 관리해야 한다.
4. 구성요소·원리·절차
리버스 프록시는 클라이언트 요청을 받아 내부 원본 서버(Origin Server)로 대신 전달하고, 그 응답을 클라이언트에게 돌려주는 중간 서버다. 클라이언트는 원본 서버 주소를 알 수 없으므로 원본 서버 은닉이 가장 큰 보안 효과다. 여기에 부하 분산과 TLS 종료가 더해져 하나의 공개 지점에서 웹 서비스 전체를 관리한다.
구성요소는 다음 표와 같다.
| 구성요소 | 역할 | 설정 예 |
|---|---|---|
| 리스너(Listener) | 공개 IP·포트 수신, TLS 처리 | listen 443 ssl |
| 라우팅 규칙 | 호스트명·경로별 원본 선택 | server_name, location |
| 업스트림 풀(Upstream Pool) | 백엔드 서버 목록과 가중치 | upstream 블록 |
| 로드밸런싱 알고리즘 | 요청을 나누는 방식 | round robin, least_conn, ip_hash |
| 헬스체크 | 장애 서버를 풀에서 제외 | max_fails, fail_timeout |
| 헤더 처리 | 원본 클라이언트 IP 전달 | X-Forwarded-For, X-Real-IP |
표의 각 구성요소는 독립된 기능이 아니라 요청 한 건의 처리 과정에서 순서대로 쓰인다. 리스너가 요청을 받고, 라우팅 규칙이 대상을 정하고, 업스트림 풀에서 알고리즘이 서버 하나를 고른다. 헬스체크는 장애 서버를 고르지 않도록 막는다.
동작 원리는 세 가지다. 첫째, 프록시가 원본의 주소를 감추어 외부 공격자가 직접 접근할 대상을 찾지 못하게 한다. 둘째, 여러 원본 서버에 요청을 나눠 단일 서버 과부하를 줄인다. 셋째, TLS를 프록시에서 종료하여 원본 서버의 암호화 부담을 줄이고 인증서 관리를 한 곳으로 모은다.
로드밸런싱 알고리즘은 다음과 같이 고른다. 라운드로빈은 순서대로 배분하며 서버 수 N과 요청 순번 n에 대해 서버 번호는 S_n = ((n-1) \bmod N) + 1 이다. 예를 들어 N=3, n=5이면 S_5 = 2번 서버다. 최소연결(least_conn)은 활성 연결이 가장 적은 서버를 고른다. IP 해시(ip_hash)는 클라이언트 IP마다 같은 서버를 고정하여 세션 유지에 쓴다.
절차는 다음과 같다.
- 클라이언트가 공개 도메인으로 HTTPS 요청을 보낸다.
- 프록시가 TLS를 종료하고 요청 헤더를 정리한다.
- 호스트명과 경로를 보고 라우팅 규칙으로 업스트림 풀을 고른다.
- 로드밸런싱 알고리즘으로 백엔드 서버 하나를 선택하고 요청을 전달한다.
- 원본 클라이언트 IP를 X-Forwarded-For 헤더에 실어 보낸다.
- 백엔드 응답을 받아 클라이언트에 반환하고 접속 로그를 남긴다.
설정은 주로 Nginx 기준으로 이루어진다. 업스트림 블록에 백엔드 주소를 정의하고, 서버 블록의 location에서 proxy_pass로 그 풀을 가리킨다. proxy_set_header로 원본 IP 헤더를 추가하고, 헬스체크 옵션을 백엔드 줄에 붙인다. 설정 변경 후에는 reload로 새 구성을 적용한다.
리버스 프록시의 핵심은 원본 서버 주소를 외부에 드러내지 않고 요청을 대신 받아 분배하는 것이다.
5. 관련 법령·기준·표준
리버스 프록시 자체를 규정한 법령은 없다. 웹서버 운영에서 프록시가 맡는 역할은 개인정보 보호와 정보통신 보호 조치로 연결된다. 아래 표는 프록시 운영과 직접 맞물리는 기준값을 모은 것이다.
| 항목 | 기준값 | 적용 조건·근거 |
|---|---|---|
| 접속기록 보관 | 1년 이상 | 개인정보처리시스템 접속기록(정보주체 접속분 제외); 예외 조건은 아래 기준 참조 |
| 접속기록 보관(대규모) | 2년 이상 | 5만명 이상 정보주체의 개인정보를 처리하는 시스템, 고유식별정보 또는 민감정보를 처리하는 시스템, 또는 「전기통신사업법」에 따라 등록·신고한 기간통신사업자에 해당하는 경우, 같은 고시 |
| 프록시 접속 로그 | 원본 IP와 요청 시각 기록 | X-Forwarded-For로 원본 IP를 남겨야 추적 가능 |
| 대피소 처리 용량 | 관련 기준에 따른 처리 용량 | KISA DDoS 사이버대피소 운영 기준, 현행 확인 필요 |
| 전송 구간 암호화 | TLS 적용 권고 | 공개 웹 구간, KISA 등 보안 가이드 권고 |
표의 접속기록 기준은 개인정보처리시스템 접속기록에 적용된다. 프록시 로그가 개인정보처리시스템의 접속기록에 해당하는지는 시스템 구조에 따라 판단해야 한다. 프록시가 원본 IP를 로그에 남기지 않으면 추적 근거가 사라지므로 헤더 설정이 법적 요건과 직결된다.
대피소 처리 용량은 DDoS 사이버대피소의 공개 값이다. 실제 이용 전에는 보호나라 등 공식 안내로 현재 값을 확인한다.
6. 유형과 비교
리버스 프록시는 동작 목적과 배치 위치에 따라 여러 유형으로 나눌 수 있다. 가장 기본적인 구분은 포워드 프록시와의 비교이다. 포워드 프록시는 내부 클라이언트를 보호하고, 리버스 프록시는 내부 서버를 보호한다. 두 방식은 같은 중개 구조이지만 보호 대상이 반대이다.
이어지는 내용
- 7. 장단점·한계와 개선 방향
- 8. 사례 또는 계산 예제
- 9. 최근 동향과 쟁점
- 10. 흔한 실수와 채점 포인트
- 11. 암기 정리
- 12. 답안 구성 예시
- 13. 예상 변형 문항
로그인하면 하루 2페이지까지 무료로 전체를 읽을 수 있습니다.
앱에서 이 단원 읽기