대리자 역할을 한다고 생각하면 된다.
캐싱(요청에 따른 응답을 중간 저장해놓은 뒤 동일 요청 시 저장값 반환) + 요청에 대한 세부적 추가 작업(요청 변환, 필터 등의 추가 작업 수행)을 위해 사용한다.
정의 : 서버와 클라이언트 사이에서 직접 통신을 주고 받을 수 없을 때 보안을 목적으로 사용하는 것.
장점
- 요청 변환 : Header 세팅으로 인한 요청 변환.
- 로드 밸런싱 : 웹 서버 부하 완화
웹 사이트에 수백만명이 방문했을 때 하나의 서버로는 대량의 트래픽을 감당할 수 없기 때문에 리버스 프록시 서버를 여러 개의 서버들 앞에 두면 과부하를 줄일 수 있다.
서버 은닉 : 서버 고유의 IP가 외부로 노출되지 않는다.
서버 접근 제어 : DDos 방지
Rate Limiting -> 서버가 임계치까지만 클라이언트의 요청을 받음 (서버의 부하 줄임)
WAF(웹 방화벽)
보안 : HTTPS
브라우저와 서버에는 각각 Public Key와 Private Key를 가지고 있다.
Private Key는 털리면 많은 문제가 생김.
모든 서버가 Private Key를 가지고 있어야 한다는 것이 단점이었다.

하지만 키를 각 서버가 아닌 Reverse Proxy에 키를 가지고 있어 한 곳에만 HTTPS를 두면 되서 관리 및 인증이 간편하다.

기존 서비스를 중지하고 새로운 서비스를 띄우는 배포 방식이다.
서버 한 대로 서비스를 운영하면 V1 버전이 실행되고 있을 때 v2를 다운로드하고 v1 이 종료되는 시점부터 v2를 시작하기 전까지는 서비스가 중지된다.
V2 로딩 과정을 거치고 V2가 정상적으로 실행이 되야 유저가 다시 서비스를 이용할 수 있는 것이다.
다운 타임 : 유저가 서비스를 사용할 수 있는 시간
서비스가 중단되지 않고 바로 새로운 버전을 이어서 유저들에게 배포하는 것이다.
CDN 은 캐싱 + 지역성 해결 을 위해 사용한다.
정의 : 지리적으로 분산된 서버들을 연결한 네트워크
문제점
미국 웹 서버가 제공하는 HTTP Resource 를 한국 클라이언트에서 조회 시 물리적인 거리에 의한 긴 응답시간
CDN을 통해 전세계적으로 캐시 서버를 곳곳에 두어 중간에 저장해 놓음으로써 각국에서 필요한 정보들을 빠르게 취함.
캐시 서버로 동작하는 만큼 원 서버에 문제가 생기면 CDN 이 고가용성을 보장해주는 버퍼의 역할을 해주기도 함
고가용성 : 서버와 네트워크 같은 것들의 정보가 상당히 오랜 기간 동안 지속적으로 정상 운영 가능한 성질.

Q1. 그림에서 Reverse Proxy가 키를 하나만 들고 있다고 되어있는데 실제로 Web Server마다 https 통신을 위해 각각의 private키를 가지고 있다고 생각이 드는데.. 이 생각이 맞다면 Reverse Proxy는 자신과 연결되어있는 서버들의 private key들을 전부 가지고 있는걸까요??

A1. WS에서는 따로 암호화를 진행하지 않고 Reverse Proxy에서만 WS에서 응답한 데이터를 Private키로 암호화를 진행하여 WB에 전달합니다 그래서 WS에서는 매번 Private키를 정해줄 필요가 없고 Reverse Proxy에서 처음 암호키를 정해주면 편리하다는 내용으로 알고 있었습니다.
정리
Public Key - Private Key 는 하나씩만 존재하고 기존엔 WS 마다 같은 Private Key 를 매번 가지고 있어야하는데
Reverse Proxy 를 사용하면 Reverse Proxy 만 Private Key 단 한개만 가지고 있으면 어떤 웹 브라우저이든 HTTPS 암호화 복호화가 가능합니다.