Web

프록시란?

park_juyoung 2018. 10. 28. 15:10

프록시란?


프록시(Proxy)란 '대리'라는 의미로 네트워크 기술에서는 프로토콜에 있어서 대리 응답 등에서 친숙한 개념입니다.

보안 분야에서는 주로 보안상의 이유로 직접 통신할 수 없는 두 점 사이에서 통신을 할 경우 그 상이 있어서 중계기로서 대리로 통신을 수행하는 기능을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부릅니다.


프록시 서버의 특징


프록시 서버는 클라이언트 입장과 서버의 입장에서 볼 떄 서로 상반되는 역할을 하는 것처럼 인식됩니다. 다시 말해서, 클라이언트 호스트에서의 입장에서 본다면 프록시 서버는 마치 원격 서버처럼 동작하는 것이고, 원격 서버에서의 입장에서 본다면 마치 클라이언트처럼 동작한다는 것입니다.


프록시 서버는 단순히 보안상의 이유만으로 설치하는 것은 아닙니다. 물론 보안상의 목적으로 설치하는 경우가 많겠지만, 그렇다고 그렇게 단순하게 볼 수 만은 없습니다. 우선 프록시 서버는 프록시 서버에 요청된 내용들을 캐시를 이용하여 저장해 둡니다. 이렇게 캐시를 해 두고 난 후에, 캐시 안에 있는 정보를 요구하는 요청에 대해서는 원격 서버에 접속하여 데이터를 가져올 필요가 없게 됨으로써 전송 시간을 절약 할 수 있게 됨과 동시에 불필요하게 외부와의 연결을 하지 않아도 된다는 장점을 갖게 됩니다. 또한 외부와의 트래픽을 줄이게 됨으로써 네트워크 병목 현상을 방지하는 효과도 얻을 수 있게 됩니다.


프록시 서버의 종류

서버의 위치에 따라 분류하면 크게 두 가지로 나눌 수 있습니다.


Forward 프록시


이것은 프록시 서버를 클라이언트 호스트들과 접근하고자 하는 원격 리소스 사이에 위치시키는 것입니다. 이 프록시 서버는 원격 서버로부터 요청된 리소스를 가져와서 요청한 사용자에게 돌려주는 역할을 수행하며, 만일 캐시에 데이터가 남아 있다면 다음 요청시 캐시된 데이터로부터 제공해 주게 됩니다. 이 서버는 전형적으로 로컬 디스크에 데이터를 저장하며, 클라이언트 호스트들은 사용중인 웹 브라우저를 이용하여 프록시 서버 사용 설정을 해야 하므로 프록시 서버를 사용하고 있다는 것을 인식할 수 있을 것입니다. 이 방식은 대역폭 사용을 감소시킬 수 있다는 것과 접근 정책 구현에 있어 다루기 쉬우면서도 비용이 저렴하다는 장점을 갖습니다. 또한 사용자의 정해진 사이트만 연결할수 있는 등 웹 사용 환경을 제한할 수 있으므로 기업 환경등에서 많이 사용합니다.

그림에서 보면 내부망 →외부망으로 데이터가 전달이 되는 걸 볼 수 있는데, 특정 사이트를 가려고 할 때 , 가고싶은 목적지 사이트의 주소를 직접 프록시 서버에 전달하며 프록시 서버가 해당 목적지 사이트의 내용을 받아와서 전달을 해주는 개념입니다. 


예) 사용자가 Proxy 설정을 myproxy.com 으로 하고, 타겟 서버가 naver.com 이라고 한다면 주소창에 naver.com을 치면 프록시서버를 거쳐 알아서 naver.com으로 브라우징이 되게 됩니다.


Reverse 프록시

이것은 프록시 서버를 인터넷 리소스 또는 인트라넷 리소스 앞에 위치시키는 방식입니다. 이방식을 사용하면 클라이언트들이 프록시 서버에 연결되었다는 것을 알지 못하게 되며, 마치 최종 사용자가 요청 리소스에 직접 접근하는 것과 같이 느끼게 됩니다. 내부 서버가 직접 서비스를 제공해도 되지만 이렇게 구성하는 이유는 보안 때문입니다. 보통 기업의 네트워크 환경은 DMZ라고 하는 내부  네트워크와 외부 네트워크 사이에 위치하는 구간이 존재하며, 이 구간에는 보통 메일, 웹, FTP서버등 외부 서비스를 제공하는 서버들이 위치를 하고 있습니다.

 

A기업이 특정 서비스를 만들어서 WAS서버를 DMZ쪽에 놓고 다이렉트로 사용을 해도 되지만, 대부분의 WAS 서버는 DB서버와도 함께 연동이 되어 있으므로 WAS가 털리게 된다면 DB서버도 함께 털리는 문제가 발생을 하게 됩니다.

이러한 이유들 때문에 Reverse Proxy를 두고 실제 서비스는 내부에 위치를 시키고 프록시 서버가 내부 서버와 통신을 해서 데이터를 받아오는 형식을 많이 사용하고 있습니다.



'Web' 카테고리의 다른 글

MIME-Type,Content-Type이란?  (4) 2018.10.24