Forward proxy, Revers proxy, Load Balancing 이 세가지의 키워드는 보통 함께 묶여서 설명된다.
이 세가지의 기능은 무슨 공통점이 있길래 그럴까 ?
우선 프록시 서버는 아래와 같이 서버와 클라이언트 사이에 존재하는 서버이다.
그럼 Forward proxy, Revers proxy, Load Balancer 는 모두 프록시 서버 기능을 할 수 있는 것들이라고 할 수 있다.
클라이언트가 프록시 서버를 통해 서버에 접근을 하게 된다면 클라이언트가 동일한 서버에 동일한 요청을 보낸 경우 캐싱된 데이터를 사용할 수 있다.
서버는 클라이언트로부터 바로 요청을 받기 때문에 요청의 주체가 무엇인지 알 수 없으므로 익명성이 보장된다.
만약 특정 컨텐츠를 클라이언트에게 보내주고 싶지 않다면 서버의 응답을 프록시 서버가 필터링을 해서 특정 컨텐츠가 클라이언트에 가는 것을 막을 수 있다.
콘텐츠 필터와 비슷하다 클라이언트가 특정한 서비스에 접근하거나 요청을 보내려고 한다면 프록시 서버가 사전에 접근을 제한 할 수 있다.
포워드 프록시와 비슷하지만 가장 다른 점은 리버스 프록시는 개발자가 설정한 것에 따라 작동하게 된다.
캐싱
보안
응답을 보내는 서버의 아이피와 주소는 클라이언트에게 노출되지 않는 것이 좋다. 리버스 프록시를 통해 서버의 익명성을 유지할 수 있다.
프록시 서버를 통해서 리버스 프록시인경우에 https 통신을하고, 프록시 서버는 서버와 http통신을 하도록 해서 ssl 인증서 관리를 프록시 서버에서만 관리 할 수 있게 해준다.
로드 밸런싱은 로드밸런서라는 서버를 통해서 할 수도 있지만 프록시 서버를 통해서 할 수 있다.
서버를 분산해서 부하를 줄일 수 있다. 그리고 클라이언트로부터 받은 요청을 서버에게 분산해서 전달해 주는 것을 로드밸런싱이라고 한다.