본문 바로가기
Concepts/System Design

Reverse proxy (web server)

by ocwokocw 2025. 4. 2.

- 출처: https://github.com/donnemartin/system-design-primer?tab=readme-ov-file#load-balancer

 

GitHub - donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Inclu

Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. - donnemartin/system-design-primer

github.com

 

- Reverse proxy (web server)

reverse proxy 는 내부 서비스들을 집결시키고 외부에 통합된 인터페이스를 노출하는 웹서버이다. 클라이언트로부터의 요청들을 처리할 수 있는 서버로 포워딩하고 해당 서버의 응답을 클라이언트에게 반환한다.

 

reverse proxy를 사용하면 다음과 같은 이점이 있다.

  • 보안성 향상: 백엔드 서버에 대한 정보를 숨기고, 블랙리스트 IP를 관리하며, 클라이언트당 connection 수를 제한
  • 확장성과 유연성 향상: 클라이언트는 reverse proxy의 IP만 알 수 있기 때문에 서버를 확장하거나 설정을 유연하게 바꿀 수 있다.
  • SSL termination: 인입 요청을 복호화하고 서버 응답을 암호화하여 백엔드 서버가 이런 연산을 하지 않도록 해준다. (각 서버에 X.509 certificates 를 설치할 필요 X)
  • 압축: 서버 응답을 압축
  • 캐싱: 캐시된 응답을 반환
  • 정적 자원: HTML, CSS, JS, 비디오, 이미지 같은 정적 자원을 직접 서빙한다.

- Load balancer vs Reverse proxy

  • 여러 대의 서버를 갖고 있을 때 load balancer 를 배포하는것이 유리하다. load balancer 는 트래픽을 같은 기능을 하는 서버 그룹으로 라우팅한다.
  • Reverse proxy 는 단 하나의 웹서버나 어플리케이션 서버와 함께 사용할때도 유용하다.
  • NGINX, HAProxy 같은 솔루션들은 layer 7 reverse proxying와 load balacing 을 지원한다.

- Reverse proxy 의 단점

  • 도입시 하나의 layer 가 생기므로 그만큼 복잡성이 증대된다.
  • 하나의 reverse proxy 는 단일 장애점(SPOF) 가 되며, 여러 대의 reverse proxy 구성은 복잡성이 증대된다.

'Concepts > System Design' 카테고리의 다른 글

Communication  (0) 2025.04.13
Asynchronism  (0) 2025.04.13
Application layer  (0) 2025.04.13
Layer 4 vs Layer 7 Load balancing  (0) 2025.03.29
Load balancer  (0) 2025.03.29

댓글