Documents

Reverse Proxy vs Forward Proxy
Proxy

프록시란 사전적 의미로 '대리인’을 뜻하며, 일반적으로 다른 무언가와 이어지는 인터페이스의 역할을 한다.

Proxy Server

프록시 서버란 클라이언트와 서버 사이에서 중계 역할을 하는 서버를 말한다. 서버의 위치에 따라 크게 forward Proxyreverse Proxy 로 나눠진다. 이 둘의 주요 차이점은 웹 브라우저 같은 client가 Forward Proxy를 사용하고 웹 서버와 같은 server가 Reverse Proxy를 사용한다는 것이다.

Forward Proxy Server

Forward Proxy(Proxy, Proxy Server, Web Proxy)는 클라이언트 컴퓨터 그룹 앞에 있는 서버이다. 해당 컴퓨터가 인터엣의 사이트 및 서비스에 요청하면 프록시 서버는 해당 요청을 가로채고 중개인처럼 해당 클라이언트를 대신하여 웹 서버와 통신한다. 즉, 원본 서버가 해당 특정 클라이언트와 직접 통신하지 않도록 하는 것이다.

Forward Proxy

Reverse Proxy Server

Reverse Proxy는 일반적으로 보안, 성능 및 안정성을 높이기 위해 구현되며, 주로 서버 관리자가 로드 밸런싱과 가용성(high availability)를 얻기위해 사용한다. Reverse Proxy는 하나 이상의 웹 서버 앞에 위치하며, 인터넷에서 요청을 가져와서 해당 웹 서버로 전달하는 역할(대리자)을 한다. 즉, 클라이언트가 해당 origin 서버와 직접 통신하지 않도록한다. 대부분의 방문자는 웹 사이트가 Reverse Proxy를 사용하고 있다는 것을 알지 못한다. 대개 웹 사이트를 detect하는 데 필요한 지식과 도구가 없거나 단순히 신경쓰지 않고, 신경쓰지 않아도 되기 때문이다. Nginx는 웹 서버와 Reverse Proxy를 동시에 사용할 수 있다. 잘 알려진 오픈소스 Reverse Proxy는 HAProxy가 있다.

Reverse Proxy

리버스 프록시의 장점은 아래와 같다.

  • Load balancing

  • Protection from attacks

  • Global Server Load Balancing(GSLB)

  • Caching

  • SSL encryption

proxy