본문 바로가기
웹/책 & 강의

HTTP 완벽가이드 - 6장 (프락시)

by sun__ 2022. 1. 9.

웹 프락시 서버

  • 클라이언트의 입장에서 트랜잭션을 수행하는 중개자
  • 트랜잭션을 완료하는 것이 클라이언트라는 점은 변하지 않음

HTTP 프락시 서버

  • 웹 서버이기도 하고 웹 클라이언트이기도 함
  • 웹 서버처럼 요청과 커넥션을 적절히 다루고 응답을 돌려줘야 한다.

프락시 = {개인 프락시(ex.ISP), 공용 프락시(중앙집중형 공용)}

 

프락시 vs 게이트웨이

  • 프락시: 같은 프로토콜을 사용하는 둘 이상의 애플리케이션을 연결
  • 게이트웨이: 서로 다른 프로토콜을 사용하는 둘 이상을 연결

 

프락시 사용 이유 및 예시

  • 보안 개선, 성능 향상, 비용절약. 트래픽 감시 및 수정.
  • 성인 콘텐츠 차단을 위한 필터링 프락시
  • 각기 다른 조직에서 관리되는 다양한 종류의 웹서버나 외부 소스에 대한 접근 제어를 위한 중앙 프락시 서버
  • 바이러스 검출을 위한 방화벽 프락시
  • 성능향상을 위한 웹 캐시
  • 웹서버인것 처럼 작동하고 분산 네트워크를 만들 때 사용되는 대리 프락시(surrogate, reverse proxy)
  • 콘텐츠 라우터
  • 데이터 포맷을 바꾸거나 압축하는 트랜스코더
  • http메시지에서 신원을 식별할 수 있는 특성들을 적극적으로 제거하는 익명화 프락시

 

프락시는 어디에 있는가?

 

프락시 서버 배치

대리프락시 = reverse proxy

프락시 계층

  • 클라이언트와 원 서버 사이에 여러 프락시가 계층적으로 존재. 인바운드로 갈 수록 부모 프락시
  • 동적 부모 선택
    • 로드 밸런싱: 부하 분산을 위해 현재 부모들의 작업량 수준에 근거해서 부모 프락시 선택
    • 지리적 인접성에 근거한 라우팅: 원 서버의 지역을 담당하는 부모를 선택
    • 프로토콜/타입 라우팅: URI에 근거하여 라우팅

프락시가 트래픽을 처리하는 방법

  • 클라이언트 수정: 의도적으로 HTTP요청을 원 서버가 아닌 프락시로 보내기
  • 인터셉트 프락시: 네트워크 인프라를 가로채서 웹 트래픽을 프락시로 가도록 조정
  • DNS 이름공간 수정: 대리프락시(reverse proxy)는 웹서버의 이름과 ip주소를 자신이 직접 사용함
  • 웹 서버 수정: HTTP 리다이랙션 명령(305)를 클라이언트에게 돌려줘서 프락시로 리다이렉트하도록