프록시

proxy.png

클라이언트와 서버 사이에 중간 역할을 하는 시스템, 클라이언트의 요청을 대신 처리하고 서버로부터 받은 응답을 클라이언트에 전달하는 방식으로 작동

프록시는 클라이언트와 서버 사이에서 요청과 응답을 대신 전달하는 중개 서버이다.

특징

익명성 제공

  • 클라이언트의 실제 IP 주소를 숨기고, 프록시 서버의 IP 주소 사용

캐싱

  • 자주 요청되는 데이터를 미리 저장해두고, 클라이언트의 요청이 있을 떄 빠르게 응답

보안

  • 프록시 서버는 클라이언트와 서버 사이에 존재, 보안 및 필터링 기능 제공

트래픽 제어

  • 리소스 보호를 위해 트래픽 필터링

종류

포워드 프록시

클라이언트가 외부 서버에 접근할 때 중개 역할을 하는 프록시

  • 클라이언트를 대신하여 외부 서버와 통신한다.

리버스 프록시

서버 쪽에서 요청을 처리하는 방식, 클라이언트가 리버스 프록시 서버에 요청을 보내고, 리버스 프록시 서버가 이를 받아서 서버로 전달하는 역할을 한다

  • 클라이언트가 서버에 직접 요청을 보내지 않고, 리버스 프록시 서버에 요청을 보냄

  • 리버스 프록시 서버는 클라이언트의 요청을 받아 내부 서버로 전달

  • 내부 서버가 응답을 리버스 프록시 서버로 보내면, 이 응답을 클라이언트에 전달

  • 로드 밸런싱, 보안, 캐싱등의 용도가 있음

  • 서버를 대신하여 클라이언트의 요청을 처리한다.

동작 원리

클라이언트 요청

  • 서버에 직접 요청하지 않고 프록시 서버에 요청을 보냄

프록시 처리

  • 프록시 서버가 캐시에 요청한 데이터가 있는 확인한다.
  • 캐시 데이터가 있으면 프록시 서버가 직접 응답하고, 데이터가 없다면 프록시 서버가 대신 서버에 요청

서버 응답

  • 프록시 서버는 서버로부터 받은 응답을 클라이언트에 전달
  • 이 과정에서 응답을 캐시에 저장하여, 다음 요청 시 빠른 응답을 제공할 수 있음

Note.

로드 밸런서는 리버스 프록시 형태로 구현되는 경우가 많지만, 모든 리버스 프록시가 로드 밸런서는 아니다.