어제의 나보다 성장한 오늘의 나

프록시 서버(proxy server)란? 본문

CS/네트워크

프록시 서버(proxy server)란?

NineOne 2021. 4. 1. 01:00

프록시 서버 

프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용프로그램을 가리킨다.

서버와 클라이언트 사이에 중계기로써 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다.

 

네트워크에서 다른 서버로의 자원 요청을 중계하며 분산 시스템 구조를 단순화하여 서비스의 복잡도를 줄일 수 있다.

 

동작원리

클라이언트가 서버로부터 필요한 파일, 연결, 웹 페이지 등과 같은 자원을 프록시서버에 요청하면 프록시 서버는 클라이언트와의 사이에서 대신 통신을 수행한다.

  1. 누군가 웹 브라우저에 네이버의 도메인을 입력
  2. 요청은 내부에서 캐시 역할을 하는 프록시 서버로 전달
  3. 프록시 서버는 우선 자신이 네이버 홈페이지를 가지고 있는지 확인
    • 가지고 있다면 네이버 홈페이지가 있는 서버에게 자신이 가진 페이지가 최신 버전인지 확인 후 최신이 아닌 경우에는 새로 갱신된 부분을 가져온다.
    • 가지고 있지 않다면 외부 회선을 통해 네이버 홈페이지가 있는 서버와 연결하여 페이지를 가져온다.
  • 이상의 과정을 마친 후에 프록시 서버는 사용자가 요청한 페이지를 제공하는 방식
  • 캐시를 이용해 저장하기 때문에 전송시간을 절약할 수 있다.

프록시 서버 종류

Forward 프록시

  • 클라이언트 호스트들과 접근하고자 하는 원격 리소스의 사이에 위치
  • 원격 서버로부터 요청된 리소스를 가져와서 요청한 사용자에게 돌려주는 역할을 수행
  • 대역폭 사용을 감소시킬 수 있고 접근 정책 구현에 있어 다루기 쉬우면서 비용이 저렴하다는 장점이 있음
  • 사용자의 정해진 사이트만 연결할 수 있는 등 웹 사용 환경을 제한할 수 있기 때문에 기업 환경 등에서 많이 사용

Reverse 프록시

  • 인터넷 리소스 또는 인트라넷 리소스 앞에 위치시키는 방식
  • 클라이언트들이 프록시 서버에 연결되었다는 것을 알지 못함
  • 보안적인 측면에서 많이 사용
  • 리버스 프록시 서버를 두고 실제 서비스 서버는 내부망에 위치시키고 프록시 서버만 내부에 있는 서비스 서버와 통신해서 결과를 클라이언트에게 제공하는 방식으로 서비스를 함
  • 각 요청에 대한 데이터가 캐시 되기 때문에 프록시 서버는 실제 서버들을 위한 부하조절 기능을 가질 수 있음

감춰지는 대상

  • Forward Proxy 는 클라이언트가 감춰진다. 요청받는 서버는 포워드 프록시 서버를 통해서 요청을 받기 때문에 클라이언트의 정보를 알 수 없다.
  • Reverse Proxy 는 반대로 서버가 감춰진다. 클라이언트는 리버스 프록시 서버에게 요청하기 때문에 실제 서버의 정보를 알 수가 없다.

프록시 서버의 사용 목적

  1. 캐시데이터
    • 프록시 서버 중 일부는 프록시 서버에 요청된 내용을 캐시를 사용해 저장해둔다.
    • 캐시에 저장되어 있는 내용은 서버에 따로 접속할 필요 없어 재요청에 용이하다.
    • 전송시간을 절약할 수 있다.
    • 외부 트래픽을 줄임으로써 네트워크 병목 현상을 방지할 수 있다.
  2. 보안 목적
    • 중간에 경유되게 되면 IP를 숨기는 것이 가능하다.
    • 방화벽으로도 사용할 수 있다.
  3. 접속 우회
    • 접속이 제한되어 있는 사이트를 프록시 서버를 통해 접속을 다른나라로 우회할 수 있다.
    • 우회에 사용할 서버 주소와 포트를 구한 후 '인터넷옵션 > 연결 > LAN 설정 > 프록시 서버'에서 서버 주소와 포트를 설정해주면 설정해준 서버에서 접속한 것처럼 속일 수 있다.

 

 

출처

Comments