1. 프록시란(Proxy)?


컴퓨터 네트워크에서 다른 서버 상의 자원을 찾는 클라이언트로부터 요청을 받아 중계하는 서버를 말한다. 간단히 말해서 중계해주는 서버

2. 프록시 사용 목적


  1. 익명성과 우회접근 서비스 형태로 제공하는 Proxy가 주로 이 범주에 속하며, IP를 숨기는 것이 주 목적이다. 요청을 대신 수행해주는 프록시 서버를 통해 우회하여 서버에 접근이 가능하다. (Open Proxy)
  2. 서버의 부하를 줄여주기 위한 Filter 이자 Cache Proxy를 도구로써 사용하는 가장 대표적인 예시, 프록시 서버가 서비스 서버에 작업하는 위치와 네트워크 구성에 따라서 Forward Proxy/ Reverse Proxy로 구분된다.
  3. 서버 접근 작업 자체를 담당하는 서버 모니터링 및 데이터 분석을 위해 요청 자체를 기록하고 다루는 형태의 서버엔진이 있다. 보안 ACL(Access Control List), Log/Audit 등을 위해 사용된다.

3. 프록시 서버 종류


  1. 포워드 프록시 : 일반적인 프록시 서버를 말하며, 요청하는 Client 와 Service Server 사이에 위치하여 중간에서 요청을 중계한다. 가령 서버에 요청이 들어왔을 때, 요청은 Proxy를 거쳐 서버에 전달되며 이 과정에서 별도 작업을 처리해서 Service Server로 전달하거나, Cache 로써의 역할을 한다.

    스크린샷 2022-04-21 오전 12.53.26.png

    예를 들어 클라이언트가 www.google.com에 접근하려고 하면, Client가 직접 접근하는게 아니라, Forward Proxy Server 요청을 받고, www.google.com에 연결하여 그 결과를 Client에 전달(forward) 해준다. 또한 Proxy Server는 캐싱(Caching) 기능이 있어서 자주 사용되는 데이터일 경우엔, 요청을 보내지 않고 캐시에서 가져올 수 있기 때문에 성능 향상에 좋다.

    Forward Proxy는 Client가 요청하는 End Point가 실제 Server의 도메인이고 Forward Proxy는 둘 사이의 통신을 담당한다. 여기서 요청 받는 server는 Forward Proxy Server를 통해서 요청을 받기 때문에 Client의 정보를 알 수 없다.

  2. 리버스 프록시 : 마찬가지로 Client 의 요청이 실제 Service Server의 도메인으로 이루어지는 것이 아닌 프록시 서버로 이동한다. Forward Proxy 와는 다르게, Service Server 들이 대게 내부망으로 구성되며 프록시에서만 연결을 허용하게 만들어 서비스를 위한 보안 채널을 구축하는 역할을 한다. 이런 경우 Client 가 Service Server 에 직접 접근이 불가능하므로 Reverse Proxy 에서 요청을 좀 더 적극적으로 중계하는 Load Balancing 의 역할을 수행하기도 한다.

    스크린샷 2022-04-21 오전 12.53.35.png

    클라이언트(Client)가 특정 기업 사이트에 데이터를 요청하면, Reverse Proxy가 이 요청을 받아 내부망 Server에서 데이터를 받은 후 Client에 전달한다. Client는 내부 Server에 대한 정보를 알 필요 없이 Reverse Proxy를 두고 Client 내부 Server 사이의 통신을 담당한다. 또한 내부 Server에 대한 설정으로 로드 밸런싱(Load Balancing)이나 Server 확장 등에 유리하다.

    Reverse Proxy는 Client가 요청하는 End Point가 Reverse Server의 도메인이기 때문에 실제 Server의 정보는 알 수 없다.