[Network] - what's different forward proxy
& reverse proxy
#167
Irisation23
started this conversation in
g. Network
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
0. 들어가기에 앞서
apache web server
에는 mod_proxy라는 모듈에서 forward proxy와 reverse proxy 두 가지 기능을 제공한다.1.
Fowrard Proxy
1.1 포워드 프록시의 역할
1.1.1 캐싱
프록시를 사용하면 자주 사용되는 HTML, JS, CSS 이미지와 같은 정적 파일들을 원 서버로부터 캐싱하고, 클라이언트가 요청할 때 원 서버로 요청하는 대신 가지고 있는 캐시로 응답할 수 있다.
네트워크 병목 현상이 줄어들고, 클라이언트 입장에서 원 서버에 비해 프록시 서버가 물리적으로 더 가까워 전송 시간도 절약될 수 있다.
1.1.2 특정 컨텐츠 액세스 제한
학교 혹은 사내의 내부망에 프록시 서버를 두어 특정 컨텐츠 액세스 제한할 수 있다.
해당 제한이 가능한 이유는 클라이언트의 모든 요청은 프록시를 거쳐 인터넷으로 연결되기 때문이다.
1.1.3 익명성 확보
모든 요청이 프록시 서버를 통해 발생하므로 클라이언트는 인터넷에 자신을 숨길 수 있다.
클라이언트의 진짜 IP 주소가 노출되는 것을 원치 않을 경우 프록시 서버를 경유할 수 있다.
2.
Reverse Proxy
2.1 리버스 프록시의 역할
2.1.1 로드 밸런싱
프록시는 여러 서버에 각각 부하를 분산하여 한 서버에 집중적으로 부하가 몰리는 상황을 방지하는 역할을 할 수 있다.
서버가 장애가 발생했을 때 해당 서버로 요청을 보내지 않도록 설정할수도 있다.
2.1.2 무중단 배포
프록시 서버 뒤에 서버가 3대 있다고 가정하자.
아무 조치 없이 배포를 위해 모든 서버를 한번에 종료하고, 새로운 버전을 보내 실행하면 사용자는 그 찰나의 시간동안 서비스를 이용할 수 없게 될 것이다.
하지만 서버를 구별해 배포중인 서버로의 요청 발생을 잠시 멈춰 배포중이지 않은 서버로 요청을 돌린다면 이는 서비스 이용자가 중단되는 경험을 겪지 않게 할 수 있다.
2.1.3 DDoS 등의 공격으로부터 보호
앞서 말했듯 서버 앞단에 프록시를 두게 되면 서버는 인터넷으로부터 숨겨진다. 외부에서는 서버의 IP를 알 수 없다.
이렇게 구성하면 공격자는 공격 대상으로 실제 서버를 공격하기 어려울 것이다.
즉 공격자는 리버스 프록시 서버만 공격 대상으로 설정할 수 있다.
이로 인해 실제 서버로의 공격을 방지할 수 있다.
3. 정리
Beta Was this translation helpful? Give feedback.
All reactions