proxy는 사전적으로 '대리'를 의미한다.
cs에서 역시 비슷한 의미로 쓰이는데, 프록시 서버는 클라이언트와 서버 사이에 위치하여 중간에 전달을 대신해주는 서버를 의미한다.
위 사진에서 프록시는 제3자의 역할로 두 컴퓨터간의 소통에 관여한다.
그렇다면 왜 프록시 서버를 사용하는 것인가?
나는 '우회'의 목적으로서 프록시 서버를 사용하는 경우만을 인식하고 있었으나,
생각보다 프록시 서버는 많은 목적을 가지고 있었다.
프록시 서버를 거쳐 클라이언트의 ip주소를 감출 수 있다. 프록시 서버를 방화벽으로 사용하기도 한다.
프록시 서버는 캐시를 사용한다. 즉, 요청들을 프록시 서버에 캐시해두어 재요청 시 서버를 거치지 않고 바로 데이터를 보낼 수 있기 때문에 전송 시간을 줄일 수 있고, 외부 트래픽을 줄임으로써 네트워크의 병목 현상도 방지할 수 있다.
위에서 학습한 내용과 같이 프록시 서버를 클라이언트 호스트와 서버 사이에 위치시켜 클라이언트는 프록시 서버를 사용하고 있다는 사실을 인식할 수 있다. 정해진 사이트만 연결할 수 있는 등 웹 사용환경을 제한할 수 있으므로 기업 환경 등에서 많이 사용된다.
프록시 서버를 서버 앞에 위치시키는 방식으로, 클라이언트들이 프록시 서버에 연결되었다는 사실을 인식하지 못한다. 예를 들어 oat.com에 데이터를 요청했을 때 reverse proxy가 요청을 받은 후 서버에서 데이터를 받아 다시 이 데이터를 클라이언트에 전달하는 방식으로, 서버의 수행비서같은 느낌!
내부 서버가 직접 서비스를 제공해도 되지만 이렇게 구성하는 이유는 보안 때문이다. 보통 기업의 네트워크 환경은 DMZ라고 하는 내부 네트워크와 외부 네트워크 사이에 위치하는 구간이 존재하며, 이 구간에는 메일 서버, 웹 서버, FTP 서버 등 외부 서비스를 제공하는 서버가 위치하게 된다.
비슷한 맥락으로 사용되는 가상사설망 vpn과는 어떤 차이가 있을까?
VPN은 가상사설망으로 불리며, 공용망을 사설망처럼 이용하는 것을 말한다.
VPN을 이용하면 내 IP가 아닌 VPN서버에서 제공하는 IP로 인식하게 된다. 이 때 VPN에 접속한 컴퓨터와 VPN서버 사이에 지나가는 패킷을 암호화 하는 경우가 많아 VPN서버 로그를 보지 않는 이상 사용자를 알아내기는 힘들다.
그러니까 VPN은 proxy와 다르게 데이터까지 암호화한다. 따라서 보안 면에서 더욱 뛰어나다.
사소한 목적으로 proxy를 사용한다면 조금 더 보안을 요하는 목적에는 VPN을 사용한다.