정만씨의 포워드 프록시와 리버스 프록시
안녕하세요 정민입니다 ! Nginx에 대해 찾아보던 와중 리버스 프록시 기능을 한다는걸 알게되었습니다. 어디서 많이 들어본 단어이지만 정확히 알지 못해 이번 기회에 공부해보았습니다.
프록시(Proxy)란 ?
프록시의 사전적 정의는 "대리"입니다. 이 의미 그대로, 프록시 서버는 어떤 두 대상 사이에서 중계 역할을 합니다. 프록시는 크게 포워드 프록시와 리버스 프록시로 구분됩니다.
포워드 프록시 (Forward Proxy)

간단히 말해, 포워드 프록시는 클라이언트의 신원을 감추는 중계 역할을 합니다. 위 사진을 참고하면, 클라이언트는 프록시에 연결하고, 프록시는 최종 목적지인 서버까지 안내합니다. 세 명의 클라이언트는 모두 중앙에 있는 프록시에 연결되며, 요청은 클라이언트가 보냈지만 서버는 누가 보냈는지 알 수 없습니다.
그렇다면 서버의 응답은 어떻게 클라이언트에게 전달될까요? 프록시는 클라이언트가 누군지 알고 있기 때문에 클라이언트 정보를 테이블 형태로 보관합니다. 따라서 프록시는 서버의 응답 트래픽을 원래 요청을 보냈던 클라이언트에게 다시 전달할 수 있습니다.
포워드 프록시의 장점
1. 익명성 : 클라이언트 입장에서 서버는 자신이 누군지 모르기 때문에 익명성을 보장할 수 있습니다.
2. 캐싱 : 프록시가 서버에서 정적인 파일을 가져올 때 설정을 통해 로컬 캐시에 보관할 수 있습니다.
3. 특정 사이트 요청을 막거나 특정 클라이언트가 특정 서버에만 접속할 수 있게한다.(geofencing).
리버스 프록시(Reverse Proxy)

앞서 언급한 포워드 프록시는 서버가 클라이언트에 대한 정보를 알 수 없게 합니다. 반대로, 리버스 프록시는 클라이언트가 자신이 어떤 서버에 연결되는지 알 수 없게 합니다. 클라이언트가 리버스 프록시를 통해 80번 포트로 연결하면, 리버스 프록시는 다른 서버나 포트로 해당 요청을 전달할 수 있습니다.
리버스 프록시의 장점
1. 로드 밸런싱 : 여러 서버에 트래픽을 분산시켜 서버 과부하를 방지하고 성능을 최적화할 수 있습니다.
2. 캐싱
3. 내부 트래픽 고립화 : 내부 네트워크 구조를 외부에 노출시키지 않고 보호할 수 있습니다.
4. 카나리 배포 : 새로운 버전의 소프트웨어를 일부 사용자에게만 배포하여 안정성을 테스트할 수 있습니다.
다음편에는 Nginx를 이용하여 리버스 프록시를 구축해보도록 하겠습니다. 감사합니다😄
참고 : https://youtu.be/ozhe__GdWC8?si=mSjfDEEbaGvjfF1h