지식창고

프록시 서버가 대체 뭐야!

_DoYun 2022. 8. 11. 18:12

 

프록시 서버(Proxy Server)의 Proxy는 '대리의' 라는 사전적 의미를 가지고 있습니다. 그렇다면 무엇을 대리로 수행해 주는 것일까요? 

 

프록시 서버(Proxy Server)는 클라이언트가 서버와 소통할 때, 서버에 바로 접근하지 않고 자신을 통해 서버에 접근할 수 있도록 해주는 일종의 대리 서버 입니다.

 

즉, 프록시 서버는 클라이언트와 서버 사이에서 중계자 역할을 수행하며 대리로 통신을 연결해 주는 서버를 말합니다. 

 

# Forward Proxy

Forward Proxy는 위의 그림과 같이 클라이언트 가까이에 위치한 프록시 서버로 클라이언트를 대신해 서버에 요청을 전달합니다. 주로 캐싱을 제공하는 경우가 많아 사용자가 빠른 서비스 이용을 할 수 있도록 도와줍니다. Forward Proxy를 사용함으로 인해 얻을 수 있는 장점으로는 다음과 같습니다.

1. 캐싱을 통해 빠른 서비스 이용 가능 클라이언트는 서비스의 서버가 아닌 프록시 서버와 소통하게 됩니다. 그러한 과정에서 여러 클라이언트가 동일한 요청을 보내는 경우 첫 응답을 하며 결과 데이터를 캐시에 저장해놓고, 이후 서버에 재 요청을 보내지 않아도 다른 클라이언트에게 빠르게 전달할 수 있습니다.

 

2. 보안 클라이언트에서 프록시 서버를 거친 후 서버에 요청이 도착하기 때문에, 서버에서 클라이언트의 IP 추적이 필요한 경우 클라이언트의 IP가 아닌 프록시 서버의 IP가 전달됩니다. 서버가 응답받은 IP는 프록시 서버의 IP이기 때문에 서버에게 클라이언트를 숨길 수 있습니다.

 

# Reverse Proxy

Reverse Proxy는 반대로 서버 가까이에 위치한 프록시 서버로 서버를 대신해서 클라이언트에 응답을 제공합니다.

1. 분산 처리 클라이언트 - 서버 구조에서 사용자가 많아져 서버에 과부하가 올 경우를 위해 부하를 분산할 수 있습니다. Reverse Proxy 구조에서 프록시 서버로 요청이 들어오면 여러대의 서버로 요청을 나누어 전달 후 처리합니다. 자세한 내용은 로드밸런서 챕터에서 학습할 수 있습니다.

 

2. 보안 Forward Proxy와 반대로 Reverse Proxy는 클라이언트에게 서버를 숨길 수 있습니다. 클라이언트 입장에서의 요청보내는 서버가 프록시 서버가 되므로 실제 서버의 IP주소가 노출되지 않습니다.