Proxy Server
- 대신 처리하는 서버
- 클라이언트와 서버간의 중계 서버로, 통신을 대리 수행하는 서버
Forward Proxy
- 캐싱
- 전송 시간 절약, 불필요한 외부 전송을 하지 않아도 되고, 외부 요청 감소하여 네트워크 병목 현상 방지도 된다.
- 익명성
- Server가 응답 받은 요청을 누가 보냈는지 알지 못하게 함
- Server가 받은 요청의 IP = Proxy Server IP
Reverse Proxy
- 캐싱
- 보안
- Load Balancing
- 여러대의 서버가 나누어 처리할 수 있도록 요청을 나누어주는 서비스
- 종류로는 L4, L7
- L4: Transport Layer에서 IP와 Port level에서 Load Balancing을 한다.
- L7: Application Layer에서 User Request level에서 Load Balancing을 한다.
- ex. http://example.com 으로 접근 시 endpoint에 따라서(ex. /category or /search.. 등) 또는 query params에 따라… 등 요청하는 방법에 따라서 담당 서버들로 나눠줌
Let’s Assume the simplest case
Client - Reverse proxy - 2 Backends.(Web server1, 2)
Client와 reverse proxy는 TCP connection에 HTTP1을 사용한다고 정하고 간다.
L7 proxying
Client → GET request ‘Hey, give me the /root ’ → reverse proxy
- 이 GET request의 header에는 많은 정보들이 있다.