프록시

RHUK2·2022년 3월 31일
0

Network

목록 보기
6/6

📢 22/05/18 복습


📚 Reference


Break Out of Your Comfort Zone, https://sujinhope.github.io/2021/06/13/Network-%ED%94%84%EB%A1%9D%EC%8B%9C(Proxy)%EB%9E%80,-Forward-Proxy%EC%99%80-Reverse-Proxy.html

참고 사이트에 내용을 개인적으로 복습하기 편하도록 재구성한 글입니다.
자세한 설명은 참고 사이트를 살펴보시기 바랍니다.

프록시의 사전적 의미는 "대신", "대리"입니다. 말 그대로 클라이언트와 서버가 통신을 할 때 직접 하지 않고 중간에서 대리로 통신을 해주는 행위를 "프록시"라고 하고, 중계 역할을 하는 것을 "프록시 서버" 라고 부릅니다. 즉, 클라이언트와 서버 사이의 "중계 서버"라고 생각하면 됩니다. 프록시 서버는 보안 목적이나 캐싱 등의 기능을 제공합니다.

프록시 서버가 중간에 위치함으로써 클라이언트는 프록시 서버를 "서버"라고 인식하고, 서버 입장에서는 프록시 서버를 "클라이언트"로 인식하게 됩니다.

프록시 서버는 서버가 어디에 위치하느냐에 따라 포워드 프록시와 리버스 프록시로 나뉩니다.


포워드 프록시(Forward Proxy)


클라이언트에서 서버로 리소스를 요청할 때 직접 요청하지 않고 프록시 서버를 거쳐서 요청합니다. 이 경우 서버에서 받는 IP는 클라이언트의 IP가 아닌 프록시 서버의 IP이기 때문에 서버는 클라이언트가 누군지 알 수 없습니다. 즉, 서버에게 클라이언트가 누구인지 감춰주는 역할을 합니다.

이러한 특징 때문에 기업 사내망에서 주로 사용됩니다.


포워드 프록시의 특징/역할


캐싱

첫 번째 요청 이후부터는 동일한 요청이 들어올 경우, 프록시 서버에 캐싱된 내용을 전달해줌으로써 성능을 향상시킬 수 있습니다.

웹 서비스에서 요청이 발생할 때마다 요청 → 요청 전송 → 요청 접수 → 응답 생성 → 응답 전송 → 응답 수신 과 같은 과정을 반복해서 거치게 되는데, 요청이 한 번 뿐일 때는 괜찮지만 중복되는 요청을 매번 처리하기에는 심한 자원낭비가 생기고, 웹 서버의 부하가 증가합니다.

이를 위해 포워드 프록시는 정적 데이터를 저장해두고 동일한 요청의 경우 웹서버 까지 가지 않고 포워드 프록시에서 처리할 수 있는 캐싱 역할을 수행합니다.

IP 우회

클라이언트 측에서 프록시 서버를 거쳐 웹 서비스를 이용할 경우, 서버 측에서는 요청을 받을 때 클라이언트의 IP가 아닌 프록시 서버의 IP를 전달받게 됩니다. 즉, 서버 측에 클라이언트의 정보를 숨길 수 있게됩니다.

제한

보안이 중요한 사내망에서 정해진 사이트에만 연결 할 수 있도록 설정하는 등 웹 사용 환경을 제한할 수 있습니다.


리버스 프록시(Reverse Proxy)


리버스 프록시는 포워드 프록시와 반대 개념입니다. 어플리케이션 서버의 앞에 위치하여 클라이언트가 서버를 요청할 때 리버스 프록시를 호출하고, 리버스 프록시가 서버로부터 응답을 전달받아 다시 클라이언트에게 전송하는 역할을 합니다.

이 경우, 클라이언트는 애플리케이션 서버를 직접 호출하는 것이 아니라 프록시 서버를 통해 호출하기 때문에 리버스 프록시는 애플리케이션 서버를 감추는 역할을 하게 됩니다.

NginX, Apache 등이 리버스 프록시 서버로 사용됩니다.


리버스 프록시의 특징/역할


로드밸런싱

리버스 프록시 뒤에 여러 개의 WAS를 둠으로써, 사용자 요청을 분산할 수 있습니다. End-point마다 호출 서버를 설정할 수 있어 역할에 따라 서버의 트래픽을 분산할 수도 있습니다.

보안

보안 상의 이유로 서버에 직접 접근하는 것을 막기 위해 DMZ같은 네트워크에 리버스 프록시를 구성하여 접근하도록 합니다.

profile
생각 많이 하지 않기 😎

0개의 댓글