프록시(Proxy)의 사전적 정의
- 컴퓨터 네트워크에서 다른 서버 상의 자원을 찾는 클라이언트로부터 요청을 받아 중계하는 서버를 말한다. (출처: 두산백과)
프록시를 번역하자면 '대리' 이며, 대리란 '남을 대신하여 일을 처리'하는 것을 말한다.
이를 통해, 프록시 서버란 대신하여 일을 처리하는 서버를 의미한다고 유추할 수 있고,
좀 더 구체적으로는 클라이언트 -서버 사이의 통신을 대리해주는 서버라고 할 수 있다.
프록시 서버의 종류로 포워드 프록시(Foward Proxy), 리버스 프록시(Reverse Proxy)가 있다고 익히 알고 있다.
그렇다면 포워드 프록시, 리버스 프록시를 구분하는 기준, 역할은 어떤 것이 있는지 알아보자
포워드 프록시 구조
클라이언트 - 포워드 프록시 - 인터넷 - 서버
포워드 프록시는 말그대로 위의 구조와 같이 앞단에 위치한 프록시를 말한다.
우리가 흔히 말하는 프록시는 포워드 프록시를 의미한다.
캐싱(Caching)
통신이 잦은 데이터를 일시적으로 저장하여 서버에 접근하지 않고 보다 빠르게 액세스 할 수 있게 해주는 기능
예를 들어, 클라이언트 - 서버가 날씨 정보에 대해 통신하였고 다른 클라이언트가 동일한 정보를 요청했을 때 포워드 프록시에서 해당 정보를 알고 있기 때문에 서버에 요청을 보내지 않고 포워드 프록시가 해당 정보를 응답해줌
이를 통해 전송 시간 절약, 서버 부하 감소, 병목 현상 방지 등의 효과를 가짐
익명성
클라이언트가 원하는 정보를 포워드 프록시를 거쳐 서버에 요청하게 되면 서버는 해당 요청을 포워드 프록시가 요청한 것으로 인지하며 클라이언트 정보를 감출 수 있음
리버스 프록시 구조
클라이언트 - 인터넷 - 리버스 프록시 - 서버
리버스 프록시는 말그대로 위의 구조와 같이 뒷단에 위치한 프록시를 말한다.
캐싱
포워드 프록시와 마찬가지로 캐싱 역할 수행 가능
보안
포워드 프록시의 익명성과 비슷하게 서버 정보를 클라이언트에게 감출 수 있음
로드밸런싱(Load Balancing)
말 그대로 서버로 수 많은 요청이 들어올 경우, 해당 요청을 여러 서버에 부하를 분산 시켜주는 기능을 말함
그렇다면, 성능이 좋은 서버 한대라면 해당 기능이 필요없지 않은가 싶을 수 있다.
하지만 서버의 하드웨어 성능을 올리는 것은 비용이 많이 들고 확장에 한계가 존재한다.
따라서 적절한 성능의 서버를 지속적으로 수평확장하여 로드밸런싱 기능을 활용하는 것이 많은 요청을 처리하는데 있어 효율적이다.