-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
29 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 계층 기준으로 설명해보자? |