Skip to content

Commit

Permalink
feat: wedge #31
Browse files Browse the repository at this point in the history
  • Loading branch information
sihyung92 authored Sep 28, 2021
1 parent a98cbc9 commit 363cf85
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions wedge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# 정리
## 프록시란
프록시 (Proxy), 대행자라는 뜻이다. 프록시 패턴, 프록시 서버 등의 표현은 '무언가를 대행해준다' 라는 이미지로 사유하면 쉽게 이해할 수 있다. `진짜`를 대행해서 업무를 처리해주고, 그 결과물을 `진짜` 에게 전달하는 것.
서버는 요청과 응답 이라는 방식으로 외부와 소통한다. 프록시 서버는 이 요청과 응답을 대신 처리하고, 진짜 서버에 전달해주는 역할을 할 것이다.
그러면 이 `대신 처리` 한다는 것의 이점은 무엇이 있을까?

1. 진짜 서버의 위치를 숨길 수 있다.
- 서버가 어떤 정보를 인터넷을 통해 전달하기 위해선 내 서버의 위치를 알려야 하고 상대 서버의 위치도 알아야 가능하다. 이 위치를 다른 말로 IP address라고 부른다.
- 하지만 프록시 서버를 쓴다면, 진짜 서버의 IP를 감출 수 있다. 나와 통신한 상대가 알 수 있는 것은 내 프록시 서버의 IP 뿐이다.

2. 동일한 요청에 대한 응답을 캐싱할 수 있다.
- 네트워크 통신은 눈 깜짝할 새 이루어지지만, 그 비용은 가볍지 않다. OSI 7계층부터 1계층을 아우르는 대장정이다. 내가 보는 깃헙 사이트는 미국 깃헙 본사에서 태평양을 건너 수많은 중계기와 케이블을 거치고 내 PC에 도달한다.
- 하지만 동일한 요청에 동일한 응답이 이루어진다면, 굳이 재요청하지 않아도 네트워크 비용을 아낄 수 있다. 프록시 서버는 동일한 요청이라고 판단되는 내용에 대해 응답을 캐싱하여 네트워크 비용을 아끼거나, 진짜 서버에게 불필요한 일을 시키지 않는다.

## 리버스 프록시와 포워드 프록시의 차이
프록시 서버의 위치를 어디로 배치하느냐에 따라 리버스 프록시와 포워드 프록시로 분류하게 된다.

브라우저(방화벽 뒤)와 인터넷 사이에 프록시 서버를 배치하면 포워드 프록시가 된다.
1. 포워드 프록시
- 앞서의 정의에 대입하면, 포워드 프록시 서버의 `진짜`는 브라우저(사용자)가 될 것이다. 유저의 요청을 대행함으로써 네트워크의 게이트웨이를 프록시 서버로 한정하게 된다.
- 진짜 유저의 IP를 숨길 수 있고, 캐싱을 통해 동일한 요청이라고 판단될 경우 네트워크 비용을 절감할 수 있다.

반대로 웹서버와 인터넷 사이에 프록시 서버를 배치하면 리버스 프록시다 된다.
1. 리버스 프록시
- 앞서의 정의에 대입하면, 리버스 프록시 서버의 `진짜`는 웹서버가 된다. 유저의 요청을 웹서버 대신 받아줌으로써 동일한 유저의 요청을 가지고 웹서버를 귀찮게 하지 않는다(캐싱을 통해).
- 또한 L4에 로드밸런서를 배치하여 여러 웹서버로 부하를 분산해주는 역할도 수행할 수 있다.

# 질문
프록시 서버를 OSI 계층 기준으로 설명해보자?

0 comments on commit 363cf85

Please sign in to comment.