본문 바로가기
Backend

리버스 프록시

by 잘먹는 개발자 에단 2025. 4. 9.

** IIS 

- 기본적으로 마이크로소프트 기술 스택과 웹 어플리케이션을 위한 웹서버이다.

- 때문에, Express 같은 Node.js 기반의 어플리케이션은 IIS에 네이티브하게 통합되어있지 않다. 

    ㄴ 그래서 IIS 앞단에 리버스 프록시 역할을 하는 모듈을 설정하여 들어오는 HTTP 요청을 Express 어플리케이션으로 포워딩해야한다.

    ㄴ 이 역할을 통해서 IIS가 클라이언트의 요청을 받아 적절한 백엔드 서버로 전달하고 응답을 다시 클라이언트로 반환할 수 있다. 

 

** 리버스 프록시 Reverse Proxy

- 리버스 프록시는 클라이언트의 요청을 받아서 백엔드 서버로 전달하고, 그 응답을 다시 클라이언트들에게 전달하는 역할을 하는 중간서버입니다.

- 일반 프록시 Proxy는 클라이언트가 직접 외부 서버에 접근할 때 중개역할을 하지만, 리버스 프록시는 클라이언트가 요청하는 대상이 실제 백엔드 서버가 아니라 리버스 프록시 서버가 되어, 클라이언트는 백엔드 서버의 존재나 구조를 직접 알지 못하게 된다.

 

*** 리버스 프록시의 동작

1. 클라이언트 요청 접수

- 클라이언트는 웹 브라우저 등에서 특정 URL로 요청을 보낸다.

2. 리버스 프록시 서버 역할

- 이 요청이 리버스 프록시 서버로 먼저 도달하며, 이 서버가 요청을 적절한 백엔드 서버 ( 또는 여러 서버 ) 로 전달한다.

3. 응답 반환

- 백엔드 서버는 요청을 처리한 후 응답을 리버스 프록시 서버에 전달하며, 최종적으로 리버스 프록시가 클라이언트에게 응답을 반환한다. 

 

 

*** 리버스 프록시의 역할과 장점

1. 로드밸런싱

- 여러대의 서버에 트래픽을 고르게 분산 시킨다.

- 서버의 과부하를 방지하여, 전체 시스템의 안정성과 성능을 높여준다.

2. 보안 강화 및 SSL 종료

- 클라이언트와의 연결에서 암호화 통신 SSL / TLS 를 처리한 후 내부 네트워크에서는 암호화 되지 않은 평문 데이터를 사용할 수 있도록 변환한다. 

- 백엔드 서버는 암호화 처리를 직접 담당할 필요없이, 리버스 프록시가 보안 통신을 관리함으로써, 운영 환경을 보다 쉽게 관리할 수 있다. 

3. 캐싱

- 자주 요청되는 콘텐츠를 미리 저장하여, 백엔드 서버로의 요청 수를 줄이고, 응답 시간을 단축시킨다.

- 성능 개선 및 서버 부하 감소

 

 

*** 일반 프록시와 리버스 프록시의 차이점

- 일반 프록시는 클라이언트가 자신의 아이덴티티를 숨기고 외부 서버와 통신할 때 사용한다. 예를 들어서 인터넷 접속시 특정 IP를 대신 사용해서 요청을 보내는 방식

 

- 리버스 프록시는 클라이언트가 요청을 보낼 때 백엔드 서버에 직접 접근하는 것이 아니라, 중간의 리버스 프록시 서버와 통신한다. 이로 인해서 백엔드 서버의 세부 구성이 클라이언트에게 노출되지 않는다.