프록시(Proxy)란?

artp·2025년 5월 9일

cs

목록 보기
8/16
post-thumbnail

프록시란?

영어 단어 프록시(proxy)는 대리, 대리인의 뜻을 가지고 있습니다.
개발에서의 프록시 서버도 비슷한 개념으로, 클라이언트(사용자)와 서버(목적지) 사이에서 요청과 응답을 대신 중계해주는 중간 서버를 말합니다.

즉, 사용자의 요청을 프록시 서버가 대신 받아서, 목적지 서버로 전달하고, 그 응답을 다시 사용자에게 되돌려주는 역할을 합니다.

프록시의 동작

  • 인터넷에 연결된 모든 컴퓨터는 고유한 IP 주소를 가집니다.
  • 프록시 서버도 마찬가지로 고유한 IP 주소를 가진 네트워크상의 컴퓨터입니다.
  • 클라이언트는 직접 서버에 요청을 보내지 않고, 프록시 서버를 통해 우회하여 요청을 보낼 수 있습니다.
  • 이 과정에서 프록시 서버는 사용자를 대신해 요청을 수행하고, 응답을 받아 클라이언트에게 전달합니다.

프록시의 종류

프록시에는 크게 두 가지가 있습니다.

종류설명대리의 대상
정방향 프록시 (Forward Proxy)클라이언트 쪽에 설정되며, 사용자의 요청을 외부 서버로 대신 전송클라이언트(사용자)
리버스 프록시 (Reverse Proxy)서버 쪽에 설정되며, 클라이언트의 요청을 대신 받아서 내부의 여러 서버로 분배하거나 보안·로드밸런싱을 수행서버(서비스)

Forward Proxy (정방향 프록시)

사용자가 외부로 나가는 요청을 프록시 서버가 대신 보내주는 구조

일반적으로 “프록시 서버”라고 하면 Forward Proxy(정방향 프록시)를 의미합니다.
클라이언트가 어떤 웹사이트나 서버에 요청을 보내고자 할 때, 프록시 서버가 이를 대신 수행합니다.

예를 들어, 회사 내부 네트워크(인트라넷)에서 외부 인터넷에 있는 서버에 접근하려고 할 때, 직접 접근하는 것이 차단되어 있다면, 클라이언트는 Forward Proxy 서버를 통해 우회적으로 요청을 보냅니다.

만약 프록시 없이 직접 요청한다면, 서버는 클라이언트의 IP를 직접 확인할 수 있습니다.
그러나 포워드 프록시를 사용할 경우, 서버가 확인하는 IP는 프록시 서버의 IP이기 때문에, 클라이언트의 실제 IP는 노출되지 않습니다.

Forward Proxy 이점

1. 클라이언트 보안 및 접근 제한

  • 정부, 학교, 기업 등에서는 내부 구성원들이 인터넷을 제한된 범위 내에서만 사용할 수 있도록 방화벽이나 프록시 서버를 사용합니다.
  • 포워드 프록시는 특정 사이트 접속을 차단하거나 허용하는 접근 제어 규칙(Rule)을 설정할 수 있습니다.
    • 예: 특정 도메인에 접근하지 못하도록 프록시에서 요청 자체를 차단 가능
  • Forward Proxy는 클라이언트의 인터넷 사용을 제한하거나 감시할 수 있는 제어 수단으로도 활용됩니다.

2. 캐싱(Caching) 기능으로 응답 속도 향상

  • 사용자가 웹 페이지를 요청하면, 프록시 서버는 해당 페이지의 정보를 캐시에 임시 저장해 둘 수 있습니다.
  • 이후 같은 요청이 들어오면 서버에 다시 요청하지 않고, 캐시에서 바로 응답을 제공합니다.
  • 이는 속도 향상외부 서버의 부하 감소라는 두 가지 효과를 줍니다.
  • 예: 4명의 사용자가 연속해서 naver.com에 접속하면, 처음 요청은 실제 서버로 가지만, 나머지 3명은 프록시에 저장된 캐시에서 바로 페이지를 받아볼 수 있습니다.

3. 암호화 및 IP 익명화

  • 클라이언트의 요청은 프록시 서버를 통과하면서 암호화될 수 있습니다.
  • 암호화된 요청은 중간 네트워크 구간에서 최소한의 정보만 노출되므로, 외부에서 클라이언트의 IP나 위치 등을 추적하기 어렵습니다.
  • 서버는 실제 클라이언트 IP가 아닌 프록시 서버의 IP만을 확인할 수 있게 됩니다.
  • 포워드 프록시는 사용자의 신원을 숨기고, 통신 내용을 암호화하여 보안 효과를 제공할 수 있습니다 (단, 반드시 암호화를 지원하는 설정/구성이 필요합니다).

Reverse Proxy (리버스 프록시)

클라이언트의 요청을 서버 앞단의 프록시가 먼저 받고, 실제 내부 서버로 다시 요청을 전달하는 구조

리버스 프록시는 서버 앞단에 위치한 중간 서버로, 클라이언트의 요청을 먼저 받아서 적절한 내부 서버(WAS, API 서버 등)로 전달하고, 그 응답을 다시 클라이언트에게 반환합니다.

클라이언트는 실제 서버의 존재를 전혀 알 수 없습니다. 리버스 프록시가 ‘진짜 서버처럼’ 응답을 대신 보내기 때문입니다.

왜 리버스(Reverse)인가?

“Reverse”는 요청이 거꾸로 흐른다는 의미가 아니라, 서버의 역할을 대신 수행하기 때문에 ‘역할이 반대’라는 의미입니다.

즉, 리버스 프록시는 서버처럼 동작하면서 실제 요청은 뒤에 있는(=reverse) 내부 서버에 다시 전달합니다.
요청의 대상이 바뀌는 구조이므로 ‘리버스’라고 부르는 것입니다.

리버스 프록시의 보안

보안상의 이유로도 리버스 프록시는 중요합니다.

  • 클라이언트는 항상 리버스 프록시의 IP와 URL만 접촉합니다.
  • 내부에 있는 실제 서버(IP, 구조 등)는 외부에 노출되지 않습니다.
  • 해커가 직접 본 서버에 공격하기 어렵게 만들 수 있습니다.

Reverse Proxy 이점

1. 로드 밸런싱

  • 하나의 서버에 수백만 요청이 몰리면 과부하가 발생합니다.
  • 리버스 프록시는 요청을 여러 대의 서버로 분산 처리할 수 있습니다.
  • 여러 대의 서버로 트래픽을 분산시켜 안정적으로 서비스를 운영할 수 있습니다.

2. 서버 보안 강화

  • 리버스 프록시를 앞단에 두면, 실제 서버의 IP나 URL이 외부에 노출되지 않습니다.
  • 해커가 공격을 시도해도 리버스 프록시가 보호벽 역할을 해줍니다.
  • DDos(디도스) 같은 공격으로부터 본 서버를 간접적으로 보호할 수 있습니다.

3. 캐싱으로 성능 향상

  • 클라이언트가 자주 요청하는 데이터를 프록시에서 캐싱해두면, 내부 서버에 요청하지 않고 바로 응답할 수 있습니다.
    • 예: 한국에 있는 사용자 → 한국에 있는 리버스 프록시가 미국 서버 대신 응답
  • 이는 네트워크 지연을 줄이고 응답 속도 향상에 도움이 됩니다.

4. 암호화 처리

  • 클라이언트와 서버 간의 HTTPS 통신은 보안은 뛰어나지만 CPU 리소스를 많이 소모합니다.
  • 리버스 프록시가 클라이언트와의 HTTPS 통신에서 암호화와 복호화를 직접 수행하고, 내부 서버는 암호화되지 않은 평문 HTTP 요청만 처리하도록 구성하면, 본 서버는 암호화 처리에 드는 리소스를 사용하지 않고, 비즈니스 로직 처리에 집중할 수 있습니다.
    • 이를 SSL Termination(암호화 오프로딩)이라고 부릅니다.

SSL Termination이란, 리버스 프록시가 HTTPS 통신의 암호화/복호화를 대신 처리하고, 본 서버는 암호화 없이 HTTP로 통신하게 해 서버 부하를 줄이는 구조입니다.
(암호화된 HTTPS 요청을 해제하는 위치를 리버스 프록시에 두는 구성 방식)

SSL = Secure Sockets Layer

  • Secure: 안전한
  • Sockets: 네트워크 통신 단위 (TCP 연결)
  • Layer: 계층 (네트워크 프로토콜 스택에서의 계층)
  • 즉, SSL인터넷에서 안전하게 데이터를 주고받기 위한 암호화 통신 계층을 말합니다.

포워드 프록시 vs 리버스 프록시 비교

항목Forward Proxy (정방향 프록시)Reverse Proxy (리버스 프록시)
위치클라이언트 앞단서버 앞단
목적사용자의 요청을 대신 서버에 전달사용차의 요청을 서버 내부로 전달
사용 예회사/학교에서 특정 사이트 접근 제한, IP 감춤서버 보호, 로드밸런싱, SSL 처리, 캐싱
요청 흐름클라이언트 → 프록시 → 서버클라이언트 → 프록시 → 내부 서버
숨기는 대상클라이언트 정보 (IP 등)서버 정보 (IP, 위치 등)
캐싱자주 쓰는 웹페이지 등자주 쓰는 응답 데이터, 정적 자원 등
보안사용자 보호 중심서버 보호 중심
profile
donggyun_ee

0개의 댓글