Forward Proxy와 Reverse Proxy

oneofakindscene·2021년 7월 26일
0

CS

목록 보기
1/8

Proxy

  • 클라이언트와 서버간의 중계 서버로, 통신을 대리 수행하는 서버
  • 아주 간단하게 대리 역할을 하는 서버라고 이해해두자.

Forward Proxy

  • 일반적인 proxy는 Forward Proxy
  • Forward Proxy 위치는 클라이언트와 인터넷 사이에 있음
    • 클라이언트 <> Forward Proxy <> 인터넷 <> 서버

특징 1: 캐싱(Caching)

  • 클라이언트가 요청한 내용을 캐싱해둔다 라고 많이함
  • 예를 들어, 클라이언트가 오늘 날씨가 어때? 라고 물어보면 Forward Proxy에서 서버에 물어보고 그 대답을 캐싱해서 저장해둡니다. 그러면 이후에 같은 질문이 왔을때는 서버에 물어보지 않고 바로 클라이언트에 대답해줄 수 있음 \leftarrow 이게 Forward Proxy 캐싱의 효과
  • 이렇게 되면
    • 1) 전송시간 절약
    • 2) 서버로의 불필요한 외부 전송 미발생
    • 3) 서버로의 불필요한 외부 전송 미발생하니 서버로의 외부 요청 감소 \Rightarrow 네트워크 병목 현상 방지

특징 2: 익명성

  • 익명성은 "클라이언트가 보낸 요청을 감춘다" 라는 의미
  • 아래 그림 같은 경우 프록시 서버가 없기 때문에 클라이언트의 정보 등이 서버에 다 전송될 수 있음
  • 아래의 그림 처럼 포워드 프록시가 생기면 클라이언트가 요청한 내용을 포워드 프록시 서버가 받아서 요청하면서 클라이언트의 정보를 숨겨서 익명성을 보장 받을 수 있다.
  • 즉, 서버는 응답 받은 요청을 누가 보냈는지 알지 못하게 됨.
  • 예를 들어, 서버가 받은 요청을 한 서버의 IP = (Forward) Proxy IP 가 됨.

Reverse Proxy

  • Forward Proxy는 클라이언트와 인터넷 사이에 위치했지만,
    • 클라이언트 <> Forward Proxy <> 인터넷 <> 서버
  • Reverse Proxy는 서버와 클라이언트 사이에 위치
    • 클라이언트 <> 인터넷 <> Reverse Proxy <> 서버

특징 1: 캐싱(Caching)

  • Forward Porxy 내용과 동일

특징 2: 보안

  • 서버정보를 클라이언트로부터 숨길 수 있다는 점
  • 클라이언트는 요청을 할 때 서버들을 직접 알지 못하고, 클라이언트의 입장에서 서버인 Reverse Proxy에게 요청을 전달합니다. 그러면 Reverse Proxy가 자기가 알고있는 서버들에게 요청을 전달함
  • 따라서, 클라이언트는 Reverse Proxy를 실제 서버라고 생각하여 요청하기 때문에 실제 서버의 IP가 노출되지 않음 \Rightarrow 실제 서버의 IP가 노출되지 않음

특징 3: 로드 밸런싱(Load Balancing)

  • 로드 밸런싱을 하는 경우도 있고, 하지 않는 경우도 있음.(Optional)
  • 로드 밸런싱은 해야할 작업을 나누어, 서버의 부하를 분산시키는 것.
    = 여러 대의 서버가 분산(나누어) 처리할 수 있도록 요청을 나누어주는 서비스.
  • 로드 밸런서(Load Balancer)
    • 서버들에게 요청을 나눠줌
    • 클라이언트가 많아지면 1대의 서버로 다 감당이 안되니깐, 여러대의 서버를 운영하면서 요청을 나눠주게됨 \Rightarrow 요청을 나눠주는 역할을 하는게 Reverse Proxy 서버 = 로드 밸런서, 이 작업을 로드 밸런싱 이라고 함

References

profile
oneofakindscene

0개의 댓글