본문 바로가기

CS/Network

Proxy 프록시

클라이언트와 서버 사이에서 중계 역할을 담당한다.  주로 보안, 트래픽 분산의 역할을 한다. 응용프로그램 수준에서만 동작(L7)

프록시(Proxy)

  • 클라이언트와 서버 사이에서 중계기를 역할을 하며 서버 대신에 프록시 서버와 클라이언트 사이에서 통신을 하여 원활한 통신이 이루어질 수 있도록 하는 기능이 있음
  • 캐시 / 필터 / 보안 / 트래픽 분산 등의 장점
  • 서버의 대리 역할(리버스 프록시)을 할 때도, 클라이언트의 대리역할(포워드 프록시)을 할 때도 있음
  • 프록시는 위치에 따라 포워드 프록시와 리버스 프록시로 나누어짐

 

포워드 프록시(Forward Proxy)

  • 포워드 프록시는 인터넷과 클라이언트 사이에 위치
  • 클라이언트의 요청을 프록시의 요청인 것처럼 하여 서버에 전송할 수 있음
  • 서버에 요청된 정보를 캐시를 이용하여 저장 -> 클라이언트가 요청한 정보가 있을 경우 서버를 거치지 않고 프록시 서버 내에서 처리가능
  • 필터링 기능
    • 클라이언트의 요청정보와 서버의 응답정보를 확인 할 수 있어 프록시는 이것을 제한할 수 있다
    • Ex) 부적절한 페이지 통제  
    • 또한, 특정 클라이언트만 접근 가능한 사이트의 경우 비밀번호를 요구할 수  있다.
  • 불필요한 요청을 막을 수 있으므로 시간 절약 가능
  • 서버에 몰리는 것을 방지할 수 있음
  • 캐시에 내용이 없을 경우 프록시 서버의 IP로 서버에 요청하므로 서버는 클라이언트의 정보를 알 수 없음(익명화)

 

리버스 프록시(Reverse Proxy)

  • 리버스 프록시는 인터넷과 서버 사이에 위치
  • 포워드 프록시처럼 정보를 캐시에 저장가능
  • 보안기능
    • 클라이언트는 리버스 프록시를 실제 서버라고 생각하고 요청
    • 서버의 응답을 리버스 프록시에서 응답한 것처럼 위장하여 클라이언트에게 제공하기에 서버의 정보(IP주소)를 알 수 없다.
  • 로드 밸런싱
    • 여러 대의 서버에 클라이언트의 요청을 분할하여 넘기기 때문에 과부하를 최소화 할 수 있음 
    • Ex) Nginx
  • 리버스 프록시가 없을 경우 클라이언트는 서버를 통해 DB까지 접근이 가능하다. 따라서 서버의 직접 접근을 제한하기 위해 필요하다. 

'CS > Network' 카테고리의 다른 글

HTTP와 HTTPS  (0) 2022.09.16
CDN이란 무엇일까?  (0) 2022.09.06
클라이언트의 서비스 요청에 따른 서버의 처리과정  (0) 2022.09.01
TCP와 UDP  (0) 2022.08.24
Web에서의 인증과 인가(세션과 토큰)  (0) 2021.12.29