Proxy에 대해 알아보자

Proxy

Proxy 란, 대리 라는 의미를 지닌다. 즉, Proxy Server는 클라이언트와 서버가 통신을 할 때 중간에서 서버 대리로 통신하는 것을 의미힌다. 클라이언트의 요청을 받아 대신 서버에 전달하고, 서버로부터 받은 응답을 클라이언트에 전달하는 역할을 한다.

프록시 서버는 어디에 위치하느냐에 따라 Forward Proxy와 Backend Proxy 로 나뉜다.

Forward Proxy

일반적인 프록시 서버가 바로 포워드 프록시이다. 클라이언트는 요청을 프록시 서버에 보내고, 프록시 서버가 요청을 받아 서버에 요청하는 구조이다.

image

이때, 서버가 받는 IP는 클라이언트의 IP가 아닌 프록시 서버의 IP이기 떄문에 서버는 클라이언트가 누구인지 알 수 없다.

프워드 프록시는 다음과 같은 이유로 사용된다.

  • 보안: 클라이언트와 서버 사이에 위치하여, 직접적인 연결을 막아 보안을 강화한다.
  • 캐싱: 자주 요청되는 데이터를 저장하여, 같은 데이터를 반복 요청하면 프록시 서버에서 바로 응답한다.
  • 익명성: 클라이언트 IP 주소를 숨기기 때문에 익명성을 제공한다.
  • 접근 제어: 특정 웹사이트에 대한 접근을 차단하거나 허용할 수 있다.
  • 로깅/모니터링: 네트워크 트래픽을 기록하고, 모니터링하여 이상 트래픽을 감지할 수 있다.

단점은 다음과 같다.

  • 추가적인 서버 운영이 필요하므로 비용 증가
  • 프록시 서버의 성능과 신뢰성에 의존하게 됨
  • 프록시 서버에 대한 설정 및 유지보수 필요

Revers Proxy (역방향 프록시)

역방향 프록시 서버는 클라이언트가 서버에 요청을 보내면, 해당 요청을 프록시 서버가 받아서 서버에 요청하는 형식이다.

image

역방향 프록시는 주로 다음과 같은 이유로 사용된다.

  • 로드 밸런싱: 여러 서버에 트래픽을 분산시켜 서버 부하를 줄이고, 응답 속도를 개선한다.
  • 보안 강화: 내부 서버를 외부에 노출하지 않고, 역방향 프록시가 외부와의 모든 트래픽을 처리하여 보안을 강화한다.
  • SSL 종단: SSL 암호화 및 복호화를 역방향 프록시가 처리하여 내부 서버의 부담을 줄인다.
  • 캐싱: 자주 요청되는 콘텐츠를 캐시하여 서버 부하를 줄이고 응답 속도를 개선한다.
  • 웹 가속: HTTP 요청을 최적화하고, 콘텐츠 압축 등을 통해 웹 서버의 성능을 시킨다.

단점은 다음과 같다.

  • 설정 및 유지 보수의 복잡성 증가
  • 추가적인 하드웨어 및 소프트웨어 비용 발생
  • 역방향 프록시 서버의 성능 및 신뢰성에 의존

정리해보자면, 포워드 프록시 서버는 클라이언트를 위해 존재하는 것이고 / 역방향 프록시는 서버를 위해 존재하는 것이다!