Proxy란 ‘대리’라는 의미를 가진 단어로, 컴퓨터 네트워크에서의 proxy 서버는 클라이언트와 서버 간의 중계 기 역할을 하는 서버로서 통신을 대리 수행한다. 이 서버를 사용함으로써 성능(캐싱), 보안성, 안정성(트래픽 분산) 등 여러 이점을 챙길 수 있다.
🤔개념
Forward Proxy
흔히 ‘프록시 서버’라고 지칭하는 프록시가 바로 Forward Proxy이다.
특징
- 캐싱: 클라이언트의 요청을 캐싱한다.
- 전송 시간 절약
- 불필요한 외부 전송 감소
- 외부 요청 감소를 통한 네트워크 병목 현상 방지
- 보안성: 방화벽과 같은 개념으로 학교, 기업 등과 같은 특정 기관에서 특정 웹사이트에 직접 접근하는 것을 방지한다. Forward Proxy 서버에 룰을 추가하여 특정 사이트 접속을 막을 수 있다.
- 익명성: 클라이언트가 보낸 요청을 감춘다.
- 서버가 응답 받은 요청을 누가 보냈는지 알지 못하게 한다. 이때, 서버는 요청을 보낸 IP를 역추적하여도 프록시의 IP만 보일 뿐 프록시 서버 뒷단의 클라이언트들의 IP 정보를 알 수 없다. 따라서 익명성이 보장되며 보안을 높이는 효과를 가져온다.
Reverse Proxy
reverse는 ‘뒷면[이면]’이라는 뜻을 가지고 있다. 따라서 Reverse Proxy는 이면에 존재하는 서버에 대한 Proxy라고 생각하면 이해하기 수월하다.
특징
- 캐싱: Forward Proxy와 마찬가지로 캐싱되어 있는 데이터를 제공할 수 있다.
- 보안: 서버 정보를 클라이언트로부터 숨길 수 있다. 클라이언트는 프록시를 실제 서버라고 생각하여 요청을 보내며, 실제 서버의 IP는 노출되지 않는다.
- 로드 밸런싱: 서버의 부하를 분산하는 역할을 수행할 수 있다.
- 암호화: 들어오는 요청을 모두 복호화하고 나가는 응답을 암호화함으로써 서버의 암복호화(SSL/TLS) 비용 부담을 덜어준다.
참고자료
[10분 테코톡] 🐿 제이미의 Forward Proxy, Reverse Proxy, Load Balancer
🌐 Reverse Proxy / Forward Proxy 정의 & 차이 정리