[Infra] 포워드 & 리버스 프록시란?

Sangho Han·2025년 8월 24일
2

🔀 Infra

목록 보기
4/5

Written by Google Gemini 2.5 Pro


📌 1. 프록시(Proxy)의 기본 개념

  • 프록시(Proxy)는 '대리인'이라는 뜻으로, 클라이언트와 서버 사이에서 통신을 중개하는 시스템이다.
  • 요청을 보내는 주체(클라이언트)나 요청을 받는 주체(서버)를 대신하여 통신을 수행하며, 이 과정에서 보안, 성능, 익명성을 향상시키는 다양한 부가 기능을 제공한다.
  • 누구를 '대리'하고, 통신의 어떤 방향을 중개하느냐에 따라 포워드 프록시리버스 프록시로 명확히 구분된다.

📌 2. 포워드 프록시: '클라이언트'를 위한 대리인

  • 포워드 프록시내부 네트워크의 클라이언트가 외부 인터넷에 접속할 때 거쳐가는 대리인이다.
  • 모든 요청이 이 프록시를 통해 나가므로, 외부 서버는 실제 클라이언트가 아닌 포워드 프록시의 IP를 보게 된다.
  • ex) 해외 직구를 대신해 주는 구매 대행 업체. 상점(외부 서버)은 실제 구매자(클라이언트)가 누구인지 모르고, 구매 대행 업체와만 거래하게 된다.

가. 구체적인 사용 사례

1. 기업 및 학교 내부망 보안

  • 사내 직원이나 학생들이 특정 웹사이트(유해 사이트, 소셜 미디어 등)에 접속하는 것을 막는 URL 필터링 기능을 수행한다.
  • 또한, 모든 외부 통신이 포워드 프록시를 거치므로 트래픽을 모니터링하고 악성코드를 검사하는 보안 관문 역할을 한다.

2. 캐싱(Caching)을 통한 속도 개선

  • 내부 사용자들이 자주 요청하는 콘텐츠(예: 윈도우 업데이트 파일, 대용량 라이브러리)를 프록시 서버에 저장(캐싱)해 둔다.
  • 이후 다른 사용자가 동일한 콘텐츠를 요청하면, 인터넷까지 나가지 않고 프록시 서버가 즉시 응답하여 네트워크 대역폭을 절약하고 속도를 높인다.

3. IP 익명성 확보 및 우회 접속

  • 클라이언트의 실제 IP를 숨기고 프록시 서버의 IP로 외부와 통신하므로 익명성을 보장받을 수 있다. 많은 VPN 서비스가 이러한 원리를 활용하며, 특정 국가에서 차단된 서비스에 접근하기 위한 우회 경로로도 사용된다.

📌 3. 리버스 프록시: '서버'를 위한 대리인

  • 리버스 프록시인터넷의 불특정 다수 클라이언트가 내부 서버로 접속할 때 거쳐가는 대리인이다.
  • 모든 요청이 리버스 프록시에 먼저 도달하므로, 클라이언트는 자신이 통신하는 서버가 실제 서버인지 프록시인지 알 수 없다.
  • ex) 대형 병원의 대표 번호 및 안내 데스크. 환자(클라이언트)는 대표 번호로만 전화하면, 안내 데스크가 환자의 증상에 맞춰 최적의 진료과(내부 서버)로 연결해 준다.

가. 구체적인 사용 사례

1. 로드 밸런싱 (부하 분산)

  • 리버스 프록시의 가장 핵심적인 역할
  • 하나의 서비스에 대해 여러 대의 웹 서버(WAS)를 운영할 때, 리버스 프록시가 요청을 받아 가장 부하가 적거나 순서에 맞는 서버로 요청을 분배하여 서버 과부하를 방지한다.

2. 무중단 배포 (Blue-Green Deployment)

  • 신규 버전(Green)의 서버들을 준비시킨 후, 리버스 프록시(Nginx) 설정 변경 한 줄만으로 기존 버전(Blue)으로 가던 트래픽을 신규 버전으로 즉시 전환할 수 있다.
  • 이를 통해 서비스 중단 없이 안전하게 업데이트를 진행할 수 있다.

3. 보안 강화 (서버 정보 은닉 및 WAF)

  • 실제 WAS의 IP 주소와 포트, 아키텍처를 외부에 완벽하게 숨겨서 직접적인 공격을 원천 차단한다.
  • 또한 리버스 프록시 단에서 웹 방화벽(WAF) 기능을 추가하여 SQL Injection, XSS 같은 애플리케이션 레벨의 공격을 필터링할 수 있다.

4. 마이크로서비스 아키텍처(MSA)의 API Gateway

  • 수많은 마이크로서비스들 앞에서 단일 진입점(Single Point of Entry) 역할을 수행한다.
  • 모든 요청을 받아 인증/인가를 처리하고, 각 요청에 맞는 서비스로 라우팅하며, 사용량 제한(Rate Limiting) 등을 통합 관리한다.

📌 4. Nginx를 활용한 리버스 프록시 심층 분석

Nginx는 가볍고 빠르며, 안정성이 높아 리버스 프록시의 표준처럼 사용된다. Nginx가 제공하는 핵심 기능들은 다음과 같다.

가. 핵심 기능 1: 로드 밸런싱 알고리즘

Nginx는 upstream 블록을 통해 다양한 방식의 로드 밸런싱을 지원한다.

  • round_robin (기본값): 서버 목록에 따라 순서대로 요청을 분배.
  • least_conn: 현재 연결 수가 가장 적은 서버로 요청을 보냄.
  • ip_hash: 클라이언트의 IP 주소를 해싱하여 특정 서버에만 연결을 고정. (세션 유지에 사용)

나. 핵심 기능 2: SSL/TLS Termination

  • 클라이언트와 Nginx 사이의 구간은 안전한 HTTPS로 암호화 통신을 하고, Nginx와 내부 WAS 구간은 암호화 오버헤드가 없는 빠른 HTTP로 통신하는 방식이다.
  • CPU를 많이 사용하는 암호화/복호화 작업을 Nginx가 전담하므로, WAS는 순수하게 비즈니스 로직 처리에만 집중하여 성능을 높일 수 있다.

다. 핵심 기능 3: 정적/동적 콘텐츠 분리 및 캐싱

  • Nginx의 location 지시어를 활용하여, 이미지/CSS/JS와 같은 정적 콘텐츠 요청은 WAS까지 보내지 않고 Nginx가 직접 처리하거나 캐시에서 즉시 응답하도록 설정할 수 있다.
  • 동적인 API 요청만 WAS로 전달하여 시스템의 전반적인 효율을 극대화한다.

profile
안녕하세요. 비즈니스를 이해하는 백엔드 개발자, 한상호입니다.

0개의 댓글