[CS] 프록시(Proxy)

프록시(proxy)란 사용자의 요청을 대신 처리해 주는 중개 서버를 의미한다. 일반적으로 클라이언트와 서버 사이에 위치하여, 클라이언트의 요청을 받아서 서버에 전달하고, 서버의 응답을 다시 클라이언트에 전달한다. 이 과정을 통해 다양한 기능과 이점을 제공한다.


1. 프록시의 기본 구조

이미지 출처 : 위키백과

  • 클라이언트는 웹 브라우저, 앱 등 사용자의 요청을 만드는 주체다.
  • 프록시 서버는 클라이언트와 서버 사이에 위치해 요청과 응답을 중계한다.
  • 실제 서버는 요청된 리소스나 데이터를 가진 최종 목적지다.

2. 프록시의 주요 역할

  • 중개: 클라이언트와 서버 사이의 요청/응답을 대신 수행한다.
  • 캐싱: 자주 요청되는 데이터를 저장해 빠른 응답을 제공한다. (속도 및 트래픽 절감)
  • 보안: 내부 IP 숨김, 악성 요청 필터링, SSL 처리 등
  • 접근 제어: 특정 사이트나 리소스에 대한 접근 제한 설정 가능
  • 로깅 및 모니터링: 사용자 요청을 기록하여 분석이나 감시 목적으로 사용 가능

3. 프록시의 종류

  • 포워드 프록시 : 클라이언트 측에 위치, 내부 사용자가 외부로 나갈 때 사용
  • 리버스 프록시: 서버 측에 위치, 외부 요청을 내부 여러 서버에 분산 처리
  • 오픈 프록시: 누구나 사용할 수 있는 공개된 프록시
  • 투명 프록시: 사용자 개입 없이 트래픽을 중간에서 자동으로 가로채 처리

4. 포워드 프록시 vs 리버스 프록시

항목 포워드 프록시 리버스 프록시
위치 클라이언트 앞단 서버 앞단
사용 목적 클라이언트 보호, 필터링, 캐싱 로드 밸런싱, 보안 강화, 서버 캐싱
예시 기업 내부 인터넷 접속 제한 Nginx로 여러 서버에 요청 분산

5. 프록시 사용 예시

  • 기업 방화벽
    → 내부 직원의 웹 접근을 제어하고 기록하기 위해 포워드 프록시를 사용한다.
  • CDN(Content Delivery Network)
    → 리버스 프록시로 동작하며, 사용자가 가까운 서버에서 콘텐츠를 받게 하여 빠른 응답을 유도한다.
  • VPN 서비스
    → 사용자의 IP를 숨기고, 특정 지역의 서버를 거쳐 요청을 보냄으로써 검열을 우회할 수 있다.

6. 프록시와 NAT의 차이

  • 프록시는 애플리케이션 계층(HTTP 등)에서 동작하며 요청/응답 내용을 해석할 수 있다.
  • NAT(Network Address Translation)는 IP 계층에서 동작하며 IP 주소 자체를 변환한다.

출처

이미지 : 프록시 서버 - 위키백과