1. 프록시(Proxy)
프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 서버사이의 중계기 역할을 한다고 보면 된다.
프록시를 쓰는 이유는 보안상의 이유로 직접 통신할 수 없는 두 점사이에서 대리로 통신을 수행하여 보안성, 성능, 안전성을 향상 시키기 위해서이다.
보통 웹은 클라이언트에서 서버로, 서버에서 클라이언트로 통신하며 데이터를 전달한다. 이때 필연적으로 중복되는 데이터를 반복하여 전달하는 상황이 발생하는데, 동일한 요청을 매번 처리하는 것은 리소스 낭비와 서버의 부하로 이어지게 된다.
서버에 도달하기 전에 새로운 서버(Proxy Server)를 배치하여 중복 요청에 대해 동일한 응답을 할 수 있게 한다면, 클라이언트에게 빠른 속도의 서비스를 서버에게는 불필요한 부하를 줄이는 효과를 낼 수 있다.
2. 포워드 프록시(Forward Proxy)
우리가 말하는 프록시 서버는 보통 Forward Proxy 서버를 말한다. 프록시 서버는 클라이언트 바로 뒤에 놓여 있다.
같은 내부망에 존재하는 클라이언트의 요청을 받아 인터넷을 통해 외부 서버에서 데이터를 가져와 클라이언트에게 응답해준다.
클라이언트가 서버에 접근하고자 할때, 클라이언트는 타겟 서버의 주소를 포워드 프록시에 전달하여, 포워드 프록시가 인터넷으로 요청된 내용을 가져오는 방식이다.
2.1. 포워드 프록시 장점
클라이언트 보안(Security)
포워드 프록시 서버는 방화벽과 같은 개념으로 특정 사이트 제한을 위해 사용 된다고 보면 된다.
어떤 기관에 속한 사람들이 방문하고자 하는 웹사이트에 직접적으로 방문하는 것을 방지 할 수 있다.
캐싱(Caching)
어떤 웹 페이지에 접근하면 프록시 서버는 해당 페이지 서버의 정보를 캐싱해둔다.
그래서 똑같이 해당 페이지에 접근하거나, 다른 클라이언트가 해당 페이지를 요청할 때, 캐시된 정보를 그대로 반환할 수 있고, 이는 서버 부하를 줄이는 효과도 낼 수 있다.
암호화(Encryption)
클라이언트의 요청은 포워드 프록시 서버를 통과할 때 암호화 된다.
암호화된 요청은 다른 서버를 통과할 때 필요한 최소한의 정보만 갖게 되는데, 이는 클라이언트의 IP를 공개하지 않는 효과를 내준다. 따라서 본 서버에서 IP주소를 역추적해도 포워드 프록시 서버를 사용하면 정체를 파악하기 어렵게 된다.
3. 리버스 프록시(Reverse Proxy)
리버스 프록시는 웹서버/WAS 앞에 놓여 있는 것을 말한다.
클라이언트는 웹서비스에 접근할 때 웹서버에 요청하는 것이 아닌, 프록시로 요청하게 되고 프록시가 배후(reverse)의 서버로부터 데이터를 가져오는 방식이다.
리버스 프록시를 사용하는 이유는 보안 때문이다. 보통 기업의 네트워크 환경에서는 DMZ라고 부르는 내부 네트워크와 외부 네트워크 사이에 위치하는 구간이 존재한다. 이 구간에는 보통 메일 서버, 웹 서버, FTP 서버 등 외부 서비스를 제공하는 서버가 위치하게 된다.
WAS는 DB서버와 연결하여 많이 사용하기 때문에 WAS가 해킹당할 경우 DB서버까지 해킹당할 수 있는 문제가 발생할 수 있다. 따라서 리버스 프록시 서버를 DMZ에 두고 실제 서비스 서버는 내부망에 위치시킨 후 서비스 하는 것이 일반적이다.
3.1. 리버스 프록시 장점
로드 밸런싱(Load Balancing)
리버스 프록시 서버를 통해 WEB Server로 서비스를 분기할 수 있다.
서버 보안(Security)
리버스 프록시를 사용하면 본래 서버의 IP 주소를 노출시키지 않을 수 있다.
클라이언트는 인터넷을 통해 리버스 프록시 서버 URL에 요청을 한다. 그리고 리버스 프록시는 본 서버에 요청을 경유해서 보내게 된다. 이렇게 되면 클라이언트는 본 서버의 URL을 모른채 리버스 프록시 url을 통해 서비스를 이요하게 되고 본 서버의 정보를 숨기는 효과가 된다.
캐싱(Caching)
리버스 프록시 서버에 캐싱되어 있는 데이터를 사용하여 Client에게 빠른 응답을 보낼 수 있다.
암호화(Encryption)
리버스 프록시로 들어오는 요청을 모두 복호화하고 나가는 응답을 암호화 해주므로 클라이언트와 안전한 통신을 할 수 있으며 본래 서버의 부담을 줄여줄 수 있다.
'기본지식' 카테고리의 다른 글
네트워크 Handshake (0) | 2024.11.01 |
---|