[Infra] 포워드 프록시와 리버스 프록시 차이점
# 포워드 프록시와 리버스 프록시의 차이점
포워드 프록시는 위 그림과 같이 클라이언트 측에서 사용되고, 리버스 프록시는 서버측에서 사용됩니다.
차이점 요약 표
구분 | 포워드 프록시 (Forward Proxy) | 리버스 프록시 (Reverse Proxy) |
사용 위치 | 클라이언트 측 (사용자) | 서버 측 (서비스 운영자) |
주요 목적 | 익명성 유지, 인터넷 차단 우회 | 서버 보호, 로드 밸런싱, 보안 강화 |
IP 주소 노출 | 웹사이트는 클라이언트 IP를 알 수 없음 | 백엔드 서버는 클라이언트 IP를 알 수 있음 |
사용 예시 | VPN, 특정 웹사이트 차단 우회, 익명 브라우징 | 웹사이트 로드 밸런싱, SSL 처리 |
# 포워드 프록시란?
포워드 프록시는 클라이언트가 웹사이트에 접속할 때 중간에서 대신 요청을 보내주는 역할을 한다.
이 과정에서 웹사이트는 클라이언트의 실제 IP 주소를 알 지 못하고, 대신 포워드 프록시 서버의 IP를 보게 된다. 이렇게 VPN을 사용하면 나의 IP를 알 수 없어 사용자의 익명성을 유지하거나 인터넷 차단을 우회할 때 주로 사용되는 것이다!
비유를 하자면, 마치 친구가 대신 전화해주는 상황이다. 그래서 상대방은 내 친구의 번호만 알 뿐, 나의 번호는 알 지 못한다
# 리버스 프록시란?
리버스 프록시는 클라이언트 요청을 받아 백엔드 서버로 전달하고, 서버의 응답을 다시 클라이언트에게 전달하는 역할을 한다.
이 과정에서 클라이언트는 웹사이트의 실제 IP 주소를 알 지 못하고, 리버스 프록시 IP로 통신한다.
주로 웹사이트 운영 측에서 사용되며, 로드밸런싱, 보안 강화, 캐싱 등을 위해 활용된다.
비유를 하자면, 마치 대형 식당의 접수처 직원과 같다. 손님이 식당에 들어오면 접수처 직원이 주문을 받고, 그 주문을 주방으로 전달하고, 음식이 준비되면 다시 손님에게 전달해준다. 이처럼 손님은 주방과 직접 소통하지 않고 접수처를 통해 모든 처리를 받게 된다.
🤯 개념적 혼란에 대한 정리 feat. 4o with canvas
포워드 프록시와 리버스 프록시의 차이
처음에는 🔄➡️ 포워드 프록시 (forward proxy)도 🔄⬅️ 리버스 프록시 (reverse proxy)처럼 🖥️ 서버 측에서 설정할 수 있을 거라고 생각했습니다. 예를 들어, 🌀 Nginx 같은 기술을 활용해 설정할 수 있을 것이라고 추측했죠. 🌐 웹사이트에 접속할 때 중간에서 요청을 대신 처리하는 기능이 서버에서도 가능할 것이라고 생각했기 때문입니다.
하지만 🖥️ 서버가 🌍 외부로 요청을 보낼 때, 🖱️ 클라이언트의 🆔 IP 주소를 완전히 숨기는 것은 불가능하다는 점을 알게 되었습니다. 이런 이유로 🔄➡️ 포워드 프록시는 주로 🖱️ 클라이언트 측에서 설정하여 사용하는 것이 일반적이라는 것을 이해하게 되었습니다.
최근 블로그에서 다룬 🛡️ WireGuard 클라이언트 사용 사례가 이 개념을 잘 설명하는 좋은 예시라고 할 수 있습니다.