< Computer Science >/컴퓨터통신

Forward Proxy & Reverse Proxy 차이점

Chipmunks 2022. 2. 5.
728x90

 

안녕하세요, 다람쥐입니다.

가끔 서버 개발을 하다보면 리버스 프록시와 관련한 이야기가 많이 나옵니다.

리버스 프록시 뿐 아니라 포워드 프록시에 관한 개념이 종종 헷갈릴 때가 있었는데요.

이번 포스팅으로 포워드 프록시 서버리버스 프록시 서버가 무엇이고 둘의 차이점이 무엇인지 알아보고 정리하고자 합니다.

 

1. 포워드 프록시 서버 (Forward Proxy Server)

아주 오래전 VPN 을 사용하기 전에 현재 IP 에서 접근할 수 없는 주소에 접근하기 위해 프록시 기능을 사용했었는데요.

프록시 서버의 위치에서는 🧑‍💻 내 IP 와 내가 접근할 수 없는 주소 모두 접근할 수 있는 친구인거죠!

그 친구에게 부탁을 해서 대신 접속해달라고 요청을 할 수 있었어요.

 

출처 : https://www.cloudflare.com/ko-kr/learning/cdn/glossary/reverse-proxy/

그 프록시 서버를 포워드 프록시 서버(Forward Proxy Server) 라고 부릅니다!

프록시 서버에 연결한 🧑‍💻 유저 디바이스의 요청을 대리로 💻 최종 서버에게 보내 대신 응답을 받아

🧑‍💻 유저 디바이스에게 보내주는 역할을 해줍니다.

🧑‍💻 클라이언트의 편이라고 보면 편합니다!

 

포워드 프록시 서버가 대신 클라이언트의 요청을 전달해주기에 💻 서버는 🧑‍💻 실제 클라이언트가 누구인지 알 수 없다는 특징이 있습니다.

예를 들어, 회사 내부 인트라넷에서 인터넷상에 위치한 서버에 요청할 때 포워드 프록시 서버를 통해서 요청하게 됩니다.

포워드 프록시 서버가 모든 요청들을 대신 보내주기에 어떤 기기가 어떠한 요청을 보냈는지 모두 기록할 수 있어

잘못된 정보가 밖으로 빠져나가지 않게끔 모니터링도 할 수 있게 되겠죠?

뿐만 아니라 정해진 인터넷 용도로만 사용할 수 있도록 제한할 수도 있습니다.

 

캐싱 기능을 가진 포워드 프록시 서버의 경우 같은 요청의 경우 미리 저장한 응답을 바로 보내줄 수 있습니다.

따라서 같은 포워드 프록시 서버를 사용하는 구성원들 간에 공통적으로 사용하는 곳이 많은 사내 인트라넷에서는

더욱 빠르게 응답을 받을 수 있어 쾌적한 업무 환경을 구성할 수 있겠네요.

 

포워드 프록시 서버는 네트워크 관리자, 보안 관제의 역할을 가진 직군에서 많이 다룰 것 같습니다.

Apache Traffic Server 등의 오픈 소스 소프트웨어에서 포워드 프록시 서버 환경을 구축할 수 있습니다.

 

최근에는 프록시 서버에 바로 연결하기 보다는 VPN(Virtual Private Network) 을 주로 사용하는데요~

악의적인 프록시 서버에 연결되어 정보를 탈취하는 걸 막기 위해 가상 네트워크로 오고 가는 정보를 모두 암호화 해주는 역할을 해줍니다.

 

2. 리버스 프록시 서버 (Reverse Proxy Server)

포워드 프록시 서버가 🧑‍💻 실제 클라이언트가 누구인지 알 수 없다는 특징이 있었는데요~

반대로 리버스 프록시 서버(Reverse Proxy Server)는 클라이언트가 💻 실제 서버가 무엇인지 알 수 없다는 특징이 있습니다.

 

출처 : https://www.cloudflare.com/ko-kr/learning/cdn/glossary/reverse-proxy/

포워드 프록시 서버 그림과 비교해보면 인터넷과 프록시 서버의 위치가 바뀐 것을 확인할 수 있습니다.

리버스 프록시 서버는 실제 서버쪽과 동일한 색상으로 되어 있습니다.

따라서 💻  실제 서버와 네트워크를 공유하고 💻  실제 서버 대신에 클라이언트의 요청을 대신 받는 서버라고 보시면 돼요.

💻  실제 서버의 편이라고 보시면 편합니다! ( 반대로 프록시 포워드 서버는 🧑‍💻 유저의 편! )

 

리버스 프록시 서버는 들어온 요청을 어느 💻  서버에게 보낼지 결정할 수 있는 능력을 가지고 있습니다!

특정 패턴이 있으면 A 서버로, 다른 패턴이 있으면 B 서버로 보내는 라우팅(Routing) 기능도 제공해주기도 합니다.

한 서버에 부하를 막기 위해 같은 기능을 한 여러 서버에 분산하여 요청해주는 로드 밸런싱(Load Balancing) 기능도 제공합니다.

 

SSL/TLS 암호화 기능도 제공하여 리버스 프록시 서버에만 적용해서 클라이언트 유저 간에만 통신합니다.

실제 서버랑 매 번 보안 통신 비용이 들면 성능이 저하될 수 있기에 클라이언트와 통하는 리버스 프록시 서버에만 SSL/TLS 암호화를 적용하여 효율적으로 암호화 통신을 진행합니다.

 

서비스를 제공하는 실제 서버를 외부 DDoS 같은 사이버 공격에 보호하기 위한 보안 기능도 있습니다.

공격자는 외부에 오픈된 실제 서버를 찾지 않는 한 리버스 프록시 서버로만 통할 수 밖에 없다는 점을 이용하는 건데요~

사이버 공격을 감지하고 차단하는 보안 솔루션도 같이 탑재되어 있는 경우가 많습니다.

 

리버스 프록시 서버는 네트워크 관리자 뿐 아니라 서비스를 쾌적하게 제공해야하는 백엔드 개발자, 데브옵스를 담당하는 분들이 많이 다룰 것으로 예상합니다.

Squid, HAProxy, NginX, Apache Traffic Server, Apache HTTP Server, Træfik 등의 오픈 소스 소프트웨어에서 지원하고, CloudFlare, AWS CloudFront 같은 CDN 서비스도 마찬가지로 리버스 프록시 서버를 사용하고 있습니다.

 

리버스 프록시 서버리버스 프록시 서버정리

포워드 프록시 서버리버스 프록시 서버를 요약하자면 다음과 같습니다.

  • 포워드 프록시 서버는 🧑‍💻 클라이언트의 편입니다! 클라이언트의 신원을 숨겨주고 서버와의 통신을 중계합니다.
  • 리버스 프록시 서버는 💻 서버의 편입니다! 서버의 신원을 숨겨주고 클라이언트와의 통신을 중계합니다.

포워드 프록시 서버리버스 프록시 서버가 각각 누구의 편인지만 알면 앞으로 크게 헷갈리지 않겠네요. 😀

 

출처

다음 문서를 참고하였습니다.

  1. Forward Proxy와 Reverse Proxy 차이점
  2. https://www.fosslinux.com/46027/self-hosted-proxy-servers.htm
  3. What is a reverse proxy? | Proxy servers explained
  4. 포워드 프록시(forward proxy) 리버스 프록시(reverse proxy) 의 차이

댓글