Reverse Proxy와 Forward Proxy 쉽게 이해하기

vinca·2024년 2월 2일

Introduction

웹에 대해 공부하며 한 번쯤 들어봤을 Reverse Proxy와 Forward Proxy 최대한 쉽게(?) 한번 이해해 보자.

Reverse Proxy

Reverse Proxy클라이언트와 서버 사이에 위치하는 서버이다.

💡엄밀히 말하면 중간에 🌐인터넷이 위치하므로 다음과 같다.
클라이언트 - 🌐인터넷 - Reverse Proxy - 서버

Reverse Proxy의 역할

왜 이러한 Reverse Proxy 서버가 필요할까?

클라이언트가 서버로 요청을 보낼 때, 클라이언트에서 보내는 트래픽을 바로 서버로 요청 보내는 것이 아닌 리버스 프록시 서버로 전달하여 실제 서버의 트래픽을 로드밸런싱하고 보안을 강화할 수 있다.

예시

예를 들어 웹서버(프론트)에서 백엔드 서버로 트래픽을 보낼 때, Reverse Proxy 서버로 트래픽을 먼저 전달하면서 부하를 감소시키고, 실제 WAS서버(백엔드)를 숨기므로써 보안을 강화할수 있다.

redirection과의 차이

그럼 내 트래픽이 결국 다른 서버로 전달된다는 점에서 redirection과 헷갈릴 수 있는데 이는 엄연히 차이가 있다.

redirection 요청

redirection은 실제로 특정 URL로 요청을 보냈을 때, 해당 요청을 다시 다른 URL로 한번 더 요청을 보내는 것이다. 따라서, 실제 접속되는 서버가 따로 있다면 이 서버의 URL을 사용자가 알 수 있다.

(예를 들어 옛날 옛적 불법으로 영화받아 보던 시절 외국사이트 같은데 들어가보면, 내가 원하지도 않은 다른 광고 사이트 URL로 바뀌어서 접속되는 그런 경험..)

Reverse Proxy 요청

반대로 리버스 프록시의 경우 접속하는 사용자가 실제 접속하는 서버가 어딘지 모르게 된다. 즉, 사용자는 리버스 프록시의 서버 URL만 알고 실제로 내 요청이 어디에 들어가고 반환 된 것인지 알 수 없다.

3줄 요약

즉, redirection은 단순히 받은 요청을 다른 곳으로 다시 전송하는 것이라면 리버스 프록시는 서버의 부하를 분산시키고, 서버의 실제 주소를 숨겨 보안을 강화하는 역할을 한다.


Forward Proxy

이전 Reverse Proxy의 "Reverse"는 말 그대로 역방향 프록시를 의미한다.
그렇다면 역방향이 아닌 직진. 즉, Forwawd Proxy는 무엇을 의미할까?🧐

Forward Proxy 또한 클라이언트와 서버 사이에 위치하는 서버이다.

그럼 Reverse Proxy와 똑같은 거 아닐까?

Reverse Proxy와의 차이

하지만, Forward Proxy는 프록시 서버가 클라이언트와 인터넷 사이에 위치한다는 점에서 차이가 있다.

💡 Reverse Proxy와 Forward Proxy 비교

  • Reverse Proxy
    클라이언트 - 🌐인터넷 - Reverse Proxy - 서버
  • Forward Proxy
    클라이언트 - Forward Proxy - 🌐인터넷 - 서버

Forward Proxy의 역할

왜 이러한 Forward Proxy 서버가 필요할까?

클라이언트가 서버로 요청을 보낼 때, 클라이언트에서 보내는 트래픽을 인터넷에 접속하기 전, 프록시 서버로 먼저 보내게 된다.

이렇게 인터넷 접속 전, 포워드 프록시 서버로 보내는 이점은 무엇일까?🧐

첫째로 포워드 프록시 서버를 통해 클라이언트 사용자가 특정 인터넷 사이트로 접근하는 것을 제한할 수 있고, 둘째사용자의 IP가 외부로 노출되는 것을 방지 할 수 있다.

예시

예를 들어 생각해보자. 어린 시절 학교 컴퓨터실이나 도서관에서 🛩️스타크래프트와 같은 게임이나 싸이월드에 접속하려면 다음과 같은 차단 사이트가 나오는 경험을 해본 바 있을 것이다.

이 창이 우리에게 출력됐던 이유가 바로 포워드 프록시로, 인터넷에 접근하기 전 이미 내 접속이 포워드 프록시에서 차단된 것이다.

따라서 어린시절 우리는 이를 뚫기 위해서 UltraSurf와 같은 프로그램을 사용했었는데,,,

(한번쯤은 봤을 UI)
VPN 이었다는 것은 20년뒤인 지금 알았다. 문득 향수에 젖는다..

초등학교 시절 뭣도 모르고 그냥 쓴 이것이 바로 VPN이다. VPN을 통해서 포워드 프록시 서버를 통과할 때 데이터를 암호화하여 프록시 서버 모르게 인터넷으로 접근한 것이다.

어린 시절 이러한 경험이 잘 떠오르지 않는다면 회사 사내망🏢을 생각하면 된다.

회사에서 외부의 공격으로부터 여러분의 컴퓨터를 지켜주기 위해 포워드 프록시 서버를 통해 IP를 숨겨주기도 하고, 여러분이 회사에서 딴짓 못하도록 특정 사이트로의 접속을 제한하기도 한다.

이것으로 Reverse Proxy, Forwad Proxy에 대한 정리를 마친다.


References
https://www.upguard.com/blog/reverse-proxy-vs-load-balancer

profile
붉은 배 오색 딱다구리 개발자 🦃Cloud & DevOps

2개의 댓글

comment-user-thumbnail
2024년 2월 13일

좋은 글 잘 읽었습니다!
글을 읽다 보니 발견한 부분인데, 중간에 Reverse Proxy와 Forward Proxy의 차이를 설명하신 부분에 두 가지가 바뀐 것 같습니다!

1개의 답글