본문 바로가기

[Web] Proxy를 알아보자

 

들어가며

웹 서버와 WAS에 관하여 공부하면서, 웹 서버를 프록시 서버로 활용할 수 있다는 것을 알았습니다. 이때 프록시는 무엇이고, 프록시를 왜 사용해야 하는지 모르고 있다고 생각했습니다. 이 기회에 네트워크 상에서 프록시에 대해 정리하여, 개발자로서의 기초를 쌓고 싶어서 개념을 정리해보고자 합니다. 무지를 반성하는 마음으로 이 글을 적습니다. 

 

 

 

 

 


 

 

 

 

 

 

 

Proxy

프록시의 사전적 의미는 '대신', '대리'입니다. 그럼 네트워크 프록시에서, 프록시 서버는 무엇인가 대신 혹은 대리로 처리하는 서버라고 생각할 수 있습니다. 즉 PC끼리 네트워크 통신을 할 때, PC끼리 직접 통신하지 않고, 중간에서 대리로 통신하는 것을 '프록시'라고 합니다. 프록시 서버는 보안 목적이나 캐싱 등의 기능을 제공합니다. 프록시의 종류는 포워드와 리버스 프록시가 있습니다. 그럼 각각의 종류에 대해 알아보겠습니다.

 

 

 

 

 


 

 

 

 

 

 

 

출처 : www.imperva.com

Forward Proxy

포워드 프록시는 클라이언트가 인터넷에 직접 접근하는 것이 아닌, 포워드 프록시 서버가 요청을 받고 인터넷에 연결하여 결과를 클라이언트에게 전달해줍니다. 프록시 서버는 캐시를 사용하여 자주 사용하는 데이터라면 요청을 보내지 않고 캐시에서 가져올 수 있기 때문에 성능 향상이 가능합니다. 또한 클라이언트가 보낸 요청을 감출 수 있어서 익명성을 보장할 수 있습니다. 포워드 프록시가 아닌, 클라이언트가 서버에 직접 호출할 땐, 요청을 서버로 바로 전달한다. 하지만 포워드 프록시가 있다면 요청을 마치 포워드 프록시가 요청한 것처럼 전달할 수 있습니다. 

 

 

 

 

 

 


 

 

 

 

 

 

출처 : www.imperva.com

Reverse Proxy

리버스 프록시는 포워드 프록시와 비슷한 특징이 있습니다. 먼저 캐시를 사용하여 자주 사용하는 데이터를 바로 전달합니다. 두 번째 특징은 서버 정보를 클라이언트로부터 숨길 수 있습니다. 클라이언트는 프록시 서버에 대한 정보만 알 수 있으므로, 클라이언트는 리버스 프록시를 실제 서버라고 생각하여 요청합니다. 그래서 실제 서버의 IP가 노출되지 않는다는 특징이 있습니다. 세 번째 특징은 로드 밸런싱이 가능합니다. 로드밸런싱은 쉽게 말해 n개의 서버를 특정 기준으로 분산시켜 처리하는 것이라 볼 수 있습니다. 

 

 

 

로드밸런싱을 실제로 수행하는 주체가 로드밸런서입니다. OSI 계층별로 로드밸런서를 나눌 수 있습니다. L2 로드밸런서의 경우 Data Link 레어이에서, Mac 주소를 바탕으로 Load Balancing을 합니다. L3 로드 밸런서는 Network 레이어에서, IP 주소를 기반으로 Load Balancing을 합니다. L4 로드밸런서는 Transport 레이어에서 TCP/UDP 기반으로 Load Balancing을 합니다. L7 로드밸런서의 경우 Application 레이어에서 트래픽 내용 분석 및 패킷 내용 기반으로 Load Balancing 합니다. 

 

특히 L4와 L7을 더 자세히 알아보면, 먼저 L4의 경우 https://test.tistory.com으로 접근할 시, 서버 A와 서버 B로 Load Balancing을 나눕니다. L7의 경우 https://test.tistory.com으로 접근 시, /category와 /search를 담당 서버들로 Load Balancing 합니다. 

 

 

 

 

 

 


 

 

 

 

 

 

마치며

공부를 하며 그동안 아주 기초적인 것들을 제대로 공부하지 않았다는 것을 깨닫습니다. 좋은 기술을 배우는 것도 좋지만, 기술의 기반이 되는 기초적인 지식을 먼저 쌓는 것이 중요하다는 것을 다시금 깨달았습니다. 기초가 튼튼한 개발자가 되고 싶습니다.

 

 

 

 

 

 

 


 

 

 

 

 

출처

 

node.js, 웹서버, WAS, 웹컨테이너, 리버스프록시

node.js가 무엇인지. 그리고 그 쓰임새는 어떠한지. 또한 웹서버란 무엇인지 정확히 알고 인지하기 위해서 해당 글을 작성하였습니다. 1. node.js Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript..

higher77.tistory.com

 

Nginx를 사용하여 프록시 서버 만들기

서론 안녕하세요, 영훈입니다. 회사에 입사한 후 인프라에 중요성에 대해서 깨닳게된 후 꾸준히 공부하고 있습니다. 오늘은 제가 공부한 Nginx의 개념에 대해서 간단히 정리한 후 Nginx 설치 및 사

velog.io

 

Forward Proxy, Reverse Proxy 정의와 차이점

Proxy 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에 중계기

bcp0109.tistory.com

 

로드밸런서란? OSI 계층별 로드밸런서

오늘은 로드밸런서와 로드밸런서 종류에 대해서도 아래와 같이 알아보도록 하겠습니다. 로드밸런싱 로드밸런싱은 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋이상의 서버로 분산하는것을 뜻

blog.voidmainvoid.net