[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
-
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