[백엔드 핵심] #1.2 포워드 프록시, 리버스 프록시

Jaeyoo (유재형)·2022년 4월 25일
1

📌 백엔드 핵심

목록 보기
3/5

1. 프록시


1.1 프록시 서버

: 클라이언트가 프록시 서버를 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 시스템이나 프로그램

  • 프록시 : 대리로 통신
  • 서버와 클라이언트 사이에 중계기로서 대리로 통신하는것이 프록시 서버
    • 클라이언트와 서버사이의 중계 서버
    • 보안 목적 또는 캐싱 기능 제공
  • 프록시 서버의 위치에 따라 Forward ProxyReverse Proxy로 나뉜다.

1.2 포워드 프록시

특징

  • 일반적으로 프록시라하면 포워드 프록시를 의미
  • 클라이언트가 인터넷에 직접 접근이 아닌 포워드 프록시를 거쳐서 인터넷과 연결
  • 프록시 서버는 Cache를 사용하여 자주 사용하는 데이터라면 캐시를 사용해 성능 향상 가능
  • 서버는 클라이언트의 ip가 아닌 프록시 서버의 ip를 받으므로 클라이언트가 누구인지 알수없다.
    • 서버에게 클라이언트가 누구린지 감춰주는 역할
    • 기업 사내망에서 주로 사용

역할

1. 캐싱

  • 첫번째 요청 이후 동일한 요청이 온다면, 프록시 서버에 캐싱된 내용을 전달해 성능을 향상

2. IP 우회

  • 서버측에 클라이언트 정보를 숨길 수 있다.

3. 제한

  • 보안이 중요한 사내망에서 정해진 사이트만 연결해 웹 사용 환경을 제한할 수 있다.

1.3 리버스 프록시

특징

  • 클라이언트가 인터넷에 데이터를 요청하면 리버스 프록시가 이 요청을 받아 서버와 통신후 클라이언트에 전달
  • 클라이언트는 내부 서버에 대한 정보를 알필요 없이 리버스 프록시에만 요청하면됨
  • 내부 서버(WAS)에 직접 접근하면 DB에 접근이 가능하기때문에 중간에 리버스 프록시를 둔다.
    • 어플리케이션 서버를 감추는 역할을 한다.
  • 내부 서버에대한 설정으로 로드 밸런싱이나 서버 확장등에 유리
  • ex) NginX, Apache Web Server

역할

1. 로드 밸런싱

  • 리버스 프록시 뒤에 여러 WAS를 두어 사용자의 요청을 분산할수있다.
  • End-Point 마다 호출 서버를 설정할 수 있어 역할에따라 서버의 트래픽 분산 가능

2. 보안

  • 보안상의 이유로 서버에 접근을 막기위해 DMZ 같은 네트워크에 리버스 프록시 구성

아래의 그림에서 NginX가 프록시 서버 역할을 한다.
애플리케이션 서버 앞에 위치하였기때문에 리버스 프록시이다.

정리


  • 프록시 서버 : 클라이언트와 서버사이의 중계 서버
    • 프록시 서버의 위치에따라 포워드, 리버스로 나뉜다.
  • Forward Proxy
    • 클라이언트가 요청하는 End Point가 실제 서버 도메인
    • 프록시는 둘 사이의 통신을 담당
    • 클라이언트가 감춰짐 (요청받는 서버는 포워드 프록시를 통해 받으므로)
  • Reverse Proxy
    • 클라이언트가 요청하는 End Point가 프록시 서버의 도메인
    • 실제 서버의 정보는 알수없음
    • 서버가 감춰짐 (클라이언트가 리버스 프록시 서버에 요청하기때문에)
profile
기록과 반복

0개의 댓글