CS/네트워크

[네트워크] 프록시 서버를 사용하는 이유

mhko411 2021. 7. 21. 10:28
728x90

프록시 서버가 무엇일까?

프록시 서버는 클라이언트와 서버 사이의 중계역할을 한다. 클라이언트가 서버에 직접적으로 데이터를 요청하지않고 프록시 서버에 요청을 한다. 프록시 서버는 클라이언트의 요청을 서버에 전달한 후에 받은 데이터를 클라이언트에 전달한다.

프록시는 포워드 프록시, 리버스 프록시가 존재한다. 이는 프록시 서버를 어디에 위치시키느냐에 따라 달라지는데 클라이언트 측에 위치시키는 것을 포워드 프록시, 서버 측에 위치시키는 것을 리버스 프록시라고 한다.

 

포워드 프록시는 아래의 그림처럼 표현할 수 있으며 일반적으로 포워드 프록시를 프록시라고 한다. 브라우저에서 구글검색을 하면 프록시 서버에서 데이터를 받아 서버에 요청 후에 값을 돌려준다. 이러한 방식은 대역폭을 감소시키고 서버가 어떤 클라이언트가 요청했는지 알 수 없게된다.

 

리버스 프록시는 아래의 그림처럼 표현할 수 있으며 프록시 서버를 서버의 앞에 위치시킨다. 클라이언트가 서버에 요청하면 외부 인터넷에서 프록시에 요청을 하고 서버는 프록시에 데이터를 전달한다. 역시 프록시가 클라이언트에게 데이터를 전달하는 것은 같다. 리버스 프록시는 서버의 정보를 숨기는 역할을 하며 클라이언트는 서버의 주소를 알 수 없다.

 

포워드 프록시와 리버스 프록시의 차이점을 생각해보자.

포워드 프록시에서는 클라이언트가 서버의 주소를 알 수 있으며 클라이언트와 서버가 연결된다. 하지만 리버스 프록시는 클라이언트가 서버의 주소가 아닌 리버스 프록시 서버의 주소를 알고있고 서버의 주소는 알지못한다. 즉 클라이언트와 리버스 프록시 서버 간의 통신이 이루어지는 것이다.


그렇다면 프록시 서버를 왜 사용할까?

프록시 서버를 사용하는 이유는 크게 두 가지가 존재한다.

 

첫 번째는 캐시 서버를 사용하기 위함이다. 캐시 서버를 사용하면 서버의 부하를 낮출 수 있다. 서버에 요청한 자료를 캐시 서버에 저장한 후에 같은 데이터를 재요청시에 웹 서버가 아닌 캐시 서버에서 데이터를 가져온다. 이를 통해 트래픽을 감소시키고 병목 현상을 방지할 수 있다.

 

두 번째는 보안상의 이점 때문이다. 외부에서 클라이언트에 접속할 때 프록시 서버를 통해 접속되기 때문에 클라이언트의 주소를 숨길 수 있다. 또한 클라이언트는 인터넷에 직접 액세스하지 않고 프록시 서버를 통해 액세스할 수 있다. 일종의 방화벽 역할을 할 수 있다.