[ 웹 / Web ] 프록시 서버 / 프락시 서버 / Proxy sever
1. 프록시 서버(proxy server)란?
클라이언트(웹 브라우저)에서 어떤 인터넷 주소의 정보검색에 대한 요구를 받으면, 그 주소를 그 전에 읽어 저장한 장소에서 찾아,
있으면 그 정보를 즉시 찾아 주고, 없으면 그 주소지의 서버로부터 가지고 와서 저장장소에 저장한다.
여기서 프록시란 대리인을 뜻하는 말이다.
프락시 서버의 기능에는 캐쉬 기능이 있다. 네트워크의 트래픽을 줄이고, 데이터의 전송 시간을 향상 시킨다.방화벽 기능을
담당하기도 한다. 인터넷 동시 접속자가 많을 때, 음란사이트 등 유해 사이트를 차단할 때, 내부 사용자 IP주소를 사설 IP주소로
설정하여 보안을 강화할 때, 해커 등 외부의 침입을 방지하고자 할 때 유용하다. 인터넷을 사용할 때 보안이나 규제가 필요한 기업이나
학교 등에서 많이 도입하고 있다.
웹 프록시의 개념으로 웹 브라우저가 프록시 서버를 명기하거나 특별한 설정 없이 (transparent caching) 프록시를 이용할 수 있다.
이런 경우 데이타의 흐름이 모두 프록시 서버를 거쳐서 일어나게 된다. 즉, 어떤 웹사이트로 접속을 시도하면, 우선 프록시 서버로
연결하여 데이터를 가져온 다음에 이것을 사용자의 PC에 전달한다. 이것의 장점은 웹에서 검색할 때마다 통신선로를 타고 검색하는 것은 통신망의 속도도 느리고, 통신오류가 발생하면 재전송을 하는 등의 일 때문에 더욱 속도가 느려질 수 있지만, 먼저 프록시 서버를
연결하여 여기서 찾고자 하는 데이터를 갖고 있으면 빠르게 사용자에게 전달할 수 있다.
방화벽과 캐시 등의 기능들과 하나의 패키지로 통합되어 있는 경우도 있고, 별도의 서버 프로그램에서 수행될 수도 있다. 예를 들어
방화벽 서버와 함께 한 컴퓨터 내에 있을 수도 있고, 별도의 서버에 존재하면서 방화벽을 통해 요구를 전달하는 것도 가능하다.
2. 프록시 서버 사용 예
일반적으로는 클라이언트1이 Router를 통해 인터넷을 이용하게 된다.
하지만 프록시 서버를 설치하고 클라이언트 PC에 "프록시 서버"사용을 체크하게 되면,
인터넷 사용시 프록시 서버를 이용해 인터넷을 이용하게 된다.
① 인터넷요청 -> 프록시 서버는 클라이언트1이 요청한 내용을 확인해서 "프록시서버" 에 없으면,
② 웹 서버에 자료를 요청
③ 자료를 받아 프록시 서버에 저장
④ 해당 자료를 클라이언트에게 전달하게 된다.
⑤ 그 후 클라이언트2가 클라이언트1이 요청한 동일한 내용을 요청하게 되면
⑥ 웹 서버로 연결하지 않고 프록시 서버가 곧바로 해당 저장값을 보여주게 된다.
이는 방화벽이 설치된 경우에 외부와 연결하기 위한 수단이 되기도 하지만,
내부의 컴퓨터들을 모니터링하고 통제하기 위한 수단으로도 이용한다.
3. Forward Proxy & Reverse Proxy
1) Forward Proxy
포워드 프록시는 클라이언트와 웹 서버 사이에 위치하게 된다. 클라이언트가 웹 서버에서 컨텐츠를 얻기 위해서는
클라이언트에서 프록시 설정이 필요하다.
[ 포워드 프록시의 네트워크 구성 ]
일반적으로 내부의 클라이언트가 내부에 위치한 방화벽을 회피하기 위한 목적으로 많이 사용되며 캐쉬 모듈을 사용하게 될 경우는
접속할 서버의 컨텐츠를 캐쉬를 하게 되어 네트워크 사용량을 줄일 수도 있다.
2) Reverse Proxy
리버스 프록시의 경우에는 포워드 프록시와는 반대의 위치 즉 웹 서버 쪽에 설치가 된다. 이때 클라이언트는 특정한 설정이 없이도
리버스 프록시에 접속할 수 있는데 이 말은 클라이언트는 리버스 프록시의 존재를 알 수 없다는 뜻이다.
[ 리버스 프록시의 네트워크 구성 ]
리버스 프록시는 보안 목적을 위해서 많이 사용한다. 웹 서버 앞단에 방화벽을 붙이고 리버스 프록시를 통한 패킷들만 통과시키게
설정을 할 경우 클라이언트는 내부 웹 서버의 직접적인 접근이 차단이 되게 되고 만일 DDos 공격이나 기타 공격이 들어 올 경우
프록시가 파괴 될지라도 내부 웹서버의 자원은 보호 할 수 있게 된다. 또한 포워드 프록시와 마찬가지로 캐쉬 모듈을 사용하여
서버쪽의 네트워크 사용량을 줄여 줄 수 있다.