프록시란?(Proxy)

권수현·2024년 1월 12일

네트워크

목록 보기
1/2

프록시란?

'중개자'라는 뜻으로 클라이언트와 서버 사이에 위치하여 그들 사이의 HTTP메서지를 정리할수 있도록 동작한다.

프락시는 웹 클라이언트, 웹 서버 둘다로써 동작할 수 있어야한다.
클라이언트의 요청을 웹서버처럼 요청과 커넥션을 적절히 다뤄 응답을 돌려줄 수 있어야하고, 요청을 직접 서버로 보내기도 하므로 이때는 클라이언트처럼 동작해야한다.


개인프록시와 공유프록시
하나의 클라리언트가 독점적으로 사용하는 프록시를 개인프록시라고 한다. 이는 사용자의 컴퓨터에서 직접 실행된다.
대부분의 프록시는 공유프록시이다. 이는 여러 클라이언트와 공유할 수 있고 캐시 기능이 지원되어 사용자가 많은 경우 유리하다.

프록시와 게이트웨이의 차이점

프록시같은 프로토콜을 사용하는 애플리케이션을 연결하고,
게이트웨이다른 프로토콜을 사용하는 애플리케이션을 연결한다는 점이 다르다.

하지만 상용프락시는 SSL 보안 프로토콜, FTP접근 등이 추가적인 기능을 지원하고 일부 게이트웨이의 기능을 지원하기도 한다.




프록시는 서버의 배치에 따라 포워드(forward)프록시리버스(reverse)프록시로 나눌수 있다.

포워드 프록시

클라이언트가 서버로 요청을 직접 보내는 것이 아니라 프록시가 대신 요청을 서버로 보내준다.

이는 사용자가 프록시를 거치도록 명시하였거나, 프록시가 HTTP 트래픽을 감시하여 가로챘을 수 있다.

과정

  1. 클라이언트에서 3.3.3.3 이라는 웹서버로 요청을 보냈을 때
  2. 5.5.5.5 라는 프록시로 요청이 가게된다.
  3. 5.5.5.5 프록시서버에서 3.3.3.3 원 서버로 요청을 보내고
  4. 받아온 응답을 클라이언트에 전달한다.

이렇게 되면 서버는 프록시로 요청을 받고 응답을 보내기 때문에 클라이언트를 알 수 없게 된다.

기능

  • 위의 과정에서 알수 있듯 클라이언트의 익명성을 보호해줄수 있다.
  • 프록시 서버에 응답이 캐싱되므로 동일한 요청이 들어왔을시 원 서버까지 가지 않고 응답을 받을 수 있어 성능이 좋아진다.



리버스 프록시

클라이언트가 웹서버로 요청할 때 원 서버가 아닌 프록시 서버로 요청을 보내게 된다.

웹서버의 주고를 프락시가 사용함으로써 클라이언트가 프록시로 요청을 보내게 된다.

과정

  1. 클라이언트는 1.1.1.1 이라는 서버로 요청을 보낸다.
  2. 이는 프록시의 주소로 프록시는 실제 원 서버의 주소를 결정한다
  3. 1.1.1.1 프록시에서 3.3.3.3 이라는 원서버로 요청을 전달하고
  4. 프록시로 받아온 응답을 클라이언트에 전달한다.

이렇게 되면 클라이언트는 프록시로 요청을 보내고 응답을 받기 때문에 서버를 알 수 없게 된다.

기능

  • 위의 과정에서 알수 있듯 실제 서버를 숨겨줄 수 있다. 따라서 디도스와 같은 공격을 막을 수 있다
  • 프록시 서버에 응답이 캐싱되므로 동일한 요청이 들어왔을시 원 서버까지 가지 않고 응답을 받을 수 있어 성능이 좋아진다.
  • 로드밸런싱: 수많은 트래픽이 발생할때, 서버를 여러개 두고 리버스 프록시에서 어떤 서버로 요청을 보낼지 부하를 분산시켜줄 수 있다.



다음 글에서는 프록시가 어떻게 트래픽을 처리하는지를 알아보겠다.

0개의 댓글