티스토리 뷰

반응형

이번 포스팅은 Proxy의 개념과 Forward Proxy와 Reverse Proxy의 차이점을 알아보겠습니다.

 

1. Proxy

 

프록시 서버를 위키 백과에서 찾아보면 아래와 같은 의미를 찾아볼 수 있습니다.

 

프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에 중계기로써 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다.

 

위키 백과의 의미처럼 프록시는 중계 서버입니다.

클라이언트와 서버 간 통신을 직접 하지 않고 중계 서버인 프록시 서버를 사용하여 보안, 트랙픽 분산 등.. 여러 장점을 가질 수 있도록 해주는 고마운 서버입니다.

 

또한 프록시 서버는 서버로 요청된 내용을 캐시 해 놓고 동일한 요청 시 바로 응답을 주도록 설정할 수도 있어 시간과 리소스 사용을 절약할 수 있는 효과를 가져오기도 합니다.

 

프록시에는 두 가지 종류가 있는데 포워드 프록시와 리버스 프록시입니다.

먼저 포워드 프록시에 대해서 알아보겠습니다.

 

2. Forward Proxy

 

 

출처 : www.imperva.com

 

일반적으로 프록시라고 하면 포워드 프록시 입니다.

클라이언트가 서버로 요청할 때 직접 요청하지 않고 먼저 프록시 서버를 통해 요청하는 방식입니다.

 

이 방식을 좀 더 쉽게 이해하자면 회사 내부 인트라넷에서 인터네상에 있는 서버에 요청할 때 먼저 프록시 서버를 호출하게 되는데 이런 방식이 포워드 프록시 입니다.

 

서버에게 클라이언트가 누구인지 감추는 역할을 해주죠.

서버가 응답받은 IP는 포워드 프록시 서버의 IP이기 때문에 클라이언트가 누군지 알 수 없습니다.

 

위 그림으로 이해하자면 인터넷보다 프록시 서버를 먼저 호출하게 되면 포워드 프록시 입니다.

 

3. Reverse Proxy

 

 

출처 : www.imperva.com

 

 

리버스 프록시는 포워드 프록시와 반대 반향을 생각하면 됩니다.

클라이언트가 서버를 호출할 때 리버스 프록시를 호출하게 되고 프록시 서버가 서버를 요청하여 받은 응답을 클라이언트에게 전달하는 방식입니다. 

 

이 방식은 내부 인트라넷에 있는 서버를 호출하기 위해서 인터넷 망에 있는 클라이언트가 리버스 프록시 서버에 요청하여 응답을 받는 방식입니다.

 

리버스 프록시는 서버가 누구인지 감추는 역할을 해줍니다.

클라이언트는 리버스 프록시 서버를 먼저 호출하게 되기 때문에 실제 서버의 IP를 알 수 없습니다.

 

위 그림으로 이해하자면 인터넷망에 있는 클라이언트가 프록시 서버를 호출하여 내부망에 있는 서버를 호출하는 방식이리버스 프록시 입니다.

 

4. 프록시 서버를 사용하면 장점은?

 

프록시 서버를 사용하면 다양한 면에서 장점을 가질 수 있습니다.대표적으로 보안, 성능, 트랙픽 분산을 들 수 있을 것 같아요.

 

4-1 보안

 

프록시 서버를 사용하면 클라이언트나 서버 모두 IP를 숨길 수 있는 방법이 생깁니다. 실제 서버 또는 클라이언트의 IP를 숨기고 프록시 서버의 IP만 공개함으로써 해킹을 대비할 수 있죠.

 

4-2 성능

 

프록시 서버를 사용하여 캐싱 기능과 트래픽 분산으로 성능 향상을 가져올 수 있습니다.

캐싱 기능은 자주 사용되는 동일한 요청을 캐싱하여 재활용하는 방식입니다. 실제 서버로 다시 호출하지 않고 프록시 서버가 대신 응답을 주어 서버의 자원 사용을 줄여주게 되죠.

 

4-3 트래픽 분산

 

일부 프록시 서버는 로드 밸런싱도 제공하여 여러 대의 분산된 서버가 있다면 서버의 트랙픽을 분산시켜 줍니다.

그리고 앤드 포인트(URL)마다 호출하는 서버를 설정할 수 있어 역할에 따라 서버의 트래픽을 분산할 수도 있죠.

 

마치며

 

이외에도 프록시를 사용하는 장점은 많습니다. 

간단하게 한 가지 더 이야기하자면 HTTPS의 인증서 관리를 하나의 프록시 서버가 담당하고 뒤에 동작하고 있는 서버는 HTTP로 서비스할 수 도 있습니다. 이렇게 되면 서버를 실행할 때마다 인증서를 관리하지 않아도 되는 장점이 생기게 되죠.

 

프록시 서버로 사용할 수 있는 다양한 하드웨어와 소프트웨어가 있어 계속 공부를 해야겠다는 생각이 드는데요.

요즘은 소프트웨어 프록시인 HaProxy에 관심이 많아 곧 HaProxy를 사용하는 포스팅도 남겨보겠습니다.

 

반응형
댓글