많은 IT 용어들은 영어 단어에서 유래되었다. proxy라는 용어 역시 영어 단어에서 유래했다. proxy의 사전적 의미는
대리, 대리인, 대용물과 같이 무엇인가를 대신
이라는 뜻을 가지고 있다.
그럼 이 단어를 IT 쪽에 대입해보자.
프록시(Proxy)는 두 PC가 통신할 때 직접하지 않고 중간에서 대리로 통신을 하는 것
을 뜻한다. 쉽게 이해하기 위해 그림으로 나타내면 밑과 같다.
위 그림처럼 두 개의 PC가 프록시를 통해
통신을 하고 있는 것이 보인다. 위처럼 중개인/대리인 역할을 하는 서버를 프록시 서버
라고 한다.
위처럼 프록시 서버가 중간 역할을 하면, 클라이언트
입장에서는 프록시 서버가 서버
로 보일것이며, 서버
입장에서는 프록시 서버가 클라이언트
로 보일것이다.
이러한 프록시의 종류에는 포워드 프록시, 리버스 프록시가 있다.
우리가 일반적으로 프록시라고 말하는 것이 포워드 프록시이다.
포워드 프록시는 서버로 리소스를 요청할 때 직접 요청하지 않고 프록시 서버를 거쳐 요청한다. 이 경우 서버에서 받는 IP
는 클라이언트의 IP가 아닌 프록시 서버의 IP
이므로 서버는 클라이언트가 누군지 알 수 없다. 즉, 서버에게 클라이언트가 누구인지 감춰주는 역할을 한다.
첫 번째 요청 이후 동일한 요청이 들어올 경우, 프록시 서버에 캐싱된 내용을 전달해줌으로써 성능을 향상시킨다.
클라이언트 측에서 포워드 프록시 서버를 거쳐 웹 서비스를 이용할 경우, 서버 측에서는 프록시 서버의 IP
를 받게 되므로 클라이언트의 정보를 숨길 수 있다.
보안이 중요한 사내망 같은 것에서 정해진 사이트에만 연결할 수 있도록 설정 할 수 있다.
리버스 프록시
는 이름처럼 포워드 프록시의 반대라고 생각하면 된다.
클라이언트가 서버를 호출
할 때 리버스 프록시를 호출하고 프록시 서버가 서버를 요청하여 응답을 클라이언트에게 전달하는 방식이다. 즉, 애플리케이션 서버 앞에 위치하여 클라이언트가 서버를 요청할 때 리버스 프록시를 호출하고, 리버스 프록시가 서버로부터 응답을 전달받아 다시 클라이언트에게 전송하는 것이다.
리버스 프록시는 서버가 누구인지 감추는 역할
을 한다. 리버스 프록시의 예시에는 NginX, Apache Web Server
가 있다.
리버스 프록시 뒤에 여러 개의 WAS를 둠으로써, 사용자의 요청을 분산할 수 있다. 엔드포인트마다 호출 서버를 설정할 수 있어 역할에 따라 서버의 트래픽을 분산할 수도 있다.
서버의 IP 주소를 숨길 수 있어 보안에 좋다.
What is a Proxy Server? How does it work?
Forward Proxy와 Reverse Proxy의 차이점