최근 CloudFlare에 대해서 공부하면서 reverse-proxy를 접하게 되었다. 이전에는 proxy 서버가 캐싱 처리와 같은 중간 역할을 하는 것 정도만 알았기에 이번 기회에 forward proxy와 비교해서 정리해보고자 한다.
정방향 프록시 서버는 클라이언트의 바로 뒷단에 위치한다. 브라우저는 원본 서버 URL에 바로 요청을 하는게 아니라, 프록시 서버의 IP로 요청하고, 프록시 서버는 그 요청을 최종 원본 서버에 전달한다. 요청을 중간에서 송,수신하면서 자연히 캐싱도 담당하게 된다. 이를 통해 대표적으로 2가지 이점을 얻는다.
추가로 원본 서버에서는 정방향 프록시 서버 IP로 인식하기 때문에 최종 원본 서버는 클라이언트가 누군지 알 수 없다. 클라이언트의 신원을 숨기면서 서버와 통신을 할 수 있게 해준다!
그림을 보면 최종적으로 인터넷을 통해 트래픽이 원본 서버에 전달된다.
역방향 프록시는 원본 서버의 앞단에 위치한다. 이 말은 즉슨, 클라이언트가 원본 서버의 IP를 알지 못하고 리버스 프록시와 통신하는 것이다.
리버스 프록시 서버가 최종 원본 서버와 직접 통신하기 때문에 대표적으로 두 가지 장점이 있다.
그림을 보면 클라이언트 요청이 인터넷을 통해 리버스 프록시로 전달되고 리버스 프록시 서버와 원본 서버가 직접 통신을 하게 되므로 인터넷에 노출되지 않는 다는 장점이 있다.