클라이언트와 서버 사이에서 중계 역할을 담당한다. 주로 보안, 트래픽 분산의 역할을 한다. 응용프로그램 수준에서만 동작(L7)
프록시(Proxy)
- 클라이언트와 서버 사이에서 중계기를 역할을 하며 서버 대신에 프록시 서버와 클라이언트 사이에서 통신을 하여 원활한 통신이 이루어질 수 있도록 하는 기능이 있음
- 캐시 / 필터 / 보안 / 트래픽 분산 등의 장점
- 서버의 대리 역할(리버스 프록시)을 할 때도, 클라이언트의 대리역할(포워드 프록시)을 할 때도 있음
- 프록시는 위치에 따라 포워드 프록시와 리버스 프록시로 나누어짐
포워드 프록시(Forward Proxy)
- 포워드 프록시는 인터넷과 클라이언트 사이에 위치
- 클라이언트의 요청을 프록시의 요청인 것처럼 하여 서버에 전송할 수 있음
- 서버에 요청된 정보를 캐시를 이용하여 저장 -> 클라이언트가 요청한 정보가 있을 경우 서버를 거치지 않고 프록시 서버 내에서 처리가능
- 필터링 기능
- 클라이언트의 요청정보와 서버의 응답정보를 확인 할 수 있어 프록시는 이것을 제한할 수 있다
- Ex) 부적절한 페이지 통제
- 또한, 특정 클라이언트만 접근 가능한 사이트의 경우 비밀번호를 요구할 수 있다.
- 불필요한 요청을 막을 수 있으므로 시간 절약 가능
- 서버에 몰리는 것을 방지할 수 있음
- 캐시에 내용이 없을 경우 프록시 서버의 IP로 서버에 요청하므로 서버는 클라이언트의 정보를 알 수 없음(익명화)
리버스 프록시(Reverse Proxy)
- 리버스 프록시는 인터넷과 서버 사이에 위치
- 포워드 프록시처럼 정보를 캐시에 저장가능
- 보안기능
- 클라이언트는 리버스 프록시를 실제 서버라고 생각하고 요청
- 서버의 응답을 리버스 프록시에서 응답한 것처럼 위장하여 클라이언트에게 제공하기에 서버의 정보(IP주소)를 알 수 없다.
- 로드 밸런싱
- 여러 대의 서버에 클라이언트의 요청을 분할하여 넘기기 때문에 과부하를 최소화 할 수 있음
- Ex) Nginx
- 리버스 프록시가 없을 경우 클라이언트는 서버를 통해 DB까지 접근이 가능하다. 따라서 서버의 직접 접근을 제한하기 위해 필요하다.
'CS > Network' 카테고리의 다른 글
HTTP와 HTTPS (0) | 2022.09.16 |
---|---|
CDN이란 무엇일까? (0) | 2022.09.06 |
클라이언트의 서비스 요청에 따른 서버의 처리과정 (0) | 2022.09.01 |
TCP와 UDP (0) | 2022.08.24 |
Web에서의 인증과 인가(세션과 토큰) (0) | 2021.12.29 |