Proxy

Proxy(프록시) 서버

  • 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적인 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 말한다.
  • 서버와 클라이언트 사이에 중계기로써 대리로 통신을 수행하는 것을 가리켜 ‘프록시’, 그 중계 기능을 하는 것을 프록시 서버라고 부른다.

Proxy의 종류

Forward Proxy

  • 일반적으로 프록시라고 하면 포워드 프록시이다.
  • 클라이언트가 서버로 요청할 때 직접 요청하지 않고, 먼저 프록시 서버를 통해서 요청하는 방식이다.
    • 좀 더 쉽게 이해하자면 회사 내부 인트라넷에서 인터넷 상에 있는 서버에 요청할 때 먼저 프록시 서버를 호출하게 되는데 이러한 방식을 포워드 프록시라고 한다.
  • 서버에게 클라이언트가 누구인지 감추는 역할을 해준다
    • 서버가 응답받은 IP는 포워드 프록시 서버의 IP이기 때문에 클라이언트가 누군지 알 수 없다.
  • 아래 그림을 이해하자면, 프록시 서버를 먼저 호출하게 되면 포워드 프록시이다.
  • 예시 : VPN

Reverse Proxy

  • 포워드 프록시와 반대로 방향으로 생각하면 된다.
  • 클라이언트가 서버를 호출할 때 리버스 프록시를 호출하게 되고 프록시 서버가 요청하여 받은 응답을 클라이언트에게 전달하는 방식이다.
  • 내부 인트라넷에서는 서버를 호출하기 위해서 인터넷 망에 있는 클라이언트가 리버스 프록시 서버에 요청하여 응답을 받은 방식이다.
  • 리버스 프록시는 서버가 누구인지 감추는 역할을 해준다.
    • 클라이언트는 리버스 프록시 서버를 먼저 호출하게 되기 때문에 실제 서버의 IP를 알 수 없다.
  • 아래 그림으로 이해하자면, 인터넷 망에 있는 클라이언트가 프록시 서버를 호출하여 내부망에 있는 서버를 호출하는 방식이 리버스 프록시이다.
  • 예시 : Gateway

Proxy의 이점

  • 클라이언트와 서버 간에 통신을 직접하지 않고 중계 서버인 프록시 서버를 사용하여 보안, 선능, 트래픽 분산 등 여러 장점을 가질 수 있다.
  • 서버로 요청된 내용을 cache해 놓고 동일한 요청 시 바로 응답을 주도록 설정할 수 있어, 시간과 리소스 사용을 절약할 수 있는 효과를 가져오기도 한다.
  • 보안
    • 프록시 서버를 사용하면 클라이언트나 서버 IP를 숨길 수 있는 있게 된다. 실제 서버 또는 클라이언트 IP를 숨기고 프록시 서버의 IP만 공개함으로서 해킹을 대비할 수 있다.
  • 성능
    • 프록시 서버를 사용하여 캐싱 기능과 분산으로 성능 향상을 가져올 수 있다.
    • 캐싱 기능은 자주 사용되는 동이한 요청을 캐싱하여 재활용하는 방식이다.
    • 실제 서버로 다시 호출하지 않고 프록시 서버가 대신 응답을 주어 서버의 자원 사용을 줄여주게 된다.
  • 트래픽 분산
    • 일부 프록시 서버은 로드 밸런싱도 제공하여 여러 대의 분산된 서버가 있다면 서버의 트래픽을 분산 시켜 준다.
    • 그리고 앤드 포인트(URL)마다 호출하는 서버를 설정할 수 있어 역할에 따라 서버의 트래픽을 분산 할 수도 있다.
  • 그밖에
    • HTTPS 인증서 관리를 하나의 프록시 서버가 담당하여 뒤에 동작하고 있는 서버는 HTTP로 서비스할 수도 있다. 이렇게 하면 서버마다 인증서 관리를 하지 않아도 되는 이점이 생긴다.