Proxy Server란?
프록시 서버(Proxy Server)는 클라이언트(Client)가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 말한다.
즉, 중계기를 의미하고 클라이언트와 서버는 Proxy Server를 통해서만 통신을 진행한다.
프록시의 종류에는 2가지가 있다.
- 포워드 프록시 (Forward Proxy)
- 리버스 프록시 (Reverse Proxy)
Forword Proxy
클라이언트가 www.naver.com에 접근하려고 하면 직접적으로 접근하는 게 아닌 Forward Proxy Server가 요청을 받고, www.naver.com에 연결하여 그 결과를 클라이언트에게 전달 한다.
직접 적으로 접근하면 되는데 왜 이렇게 사용을 하냐?
Proxy Server는 캐싱(Caching) 기능이 있어서 자주 사용되는 데이터일 경우엔, 요청을 보내지 않고 캐시에서 가져올 수 있기 때문에 성능 향상에 좋다.
클라이언트와 서버와 통신 시 포워드 프록시가 서버와 통신을 하고 클라이언트에게 전달 하기 때문에 클라이언트의 정보가 감춰집니다.

Reverse Proxy
클라이언트가 특정 사이트에 데이터를 요청하면, Reverse Proxy가 이 요청을 받아 내부망 Server에서 데이터를 받은 후 클라이언트에 전달함.
클라이언트는 내부 Server에 대한 정보를 알 필요 없이 Reverse Proxy에만 요청하면 된다.
클라이언트는 리버스 프록시 서버와 요청을 주고 받기 때문에 실제 서버의 정보를 알 수 없다.

프록시 서버 사용 이유
- 익명으로 컴퓨터를 유지할 수 있기 때문.
- 캐시를 사용하여 리소스로의 접근을 빠르게 할 수 있다. 웹 프록시는 웹 서버로부터 웹페이지를 캐시로 저장하는 데 흔히 쓰이며 캐싱을 통해 콘텐츠를 빠르게 가져올 수 있다.
- 네트워크 서비스나 콘텐츠로의 접근 정책을 적용하기 위해 사용한다. 또한 사용률을 기록하고 검사하기 위해 사용할 수 있다.
- 보안 및 통제를 뚫고 나가기 위해 사용할 수 있다. 또한 역으로 IP 추적을 당하지 않을 목적으로 사용한다.
- 밖으로 나가는 콘텐츠를 검사하기 위해 사용한다. 중계 서버인 프록시 서버를 거치기 때문에 콘텐츠를 검사할 수 있다. 지역 제한을 우회하기 위해 사용할 수 있다.
- 보안 분야에서는 주로 보안상의 이유 등으로 직접 통신할 수 없는 경우가 존재한다.
프록시 서버의 목적
- 보안 : 익명의 사용자가 서버에 접근하는 것을 막는다.
- 속도 : Proxy 서버는 사용자의 요청을 Cache해서 동일 요청이 들어오면 Cache자원을 반환한다. 서비스 속도를 높여주는 기능
- ACL : 사이트 접근에 대한 접근 정책을 정의 할 수 있다.
- Log/Audit : 회사 내 직원의 인터넷 사용 레포팅 가능, 인트라 넷도 가능
- 지역 네트워크의 제한 우회