네트워크/개념

[Network] - 프록시(proxy)

빗방울소리 2024. 2. 4. 18:07

 

목차
1. 프록시란?
2. Forward Proxy VS Reverse Proxy
3. 마치며

 

 

1. 프록시란

더보기

 

프록시 서버(proxy server)는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. - 위키백과

 

 

 

 위키백과에서는 프록시에 관해 위와같이 정의하였다. 즉 프록시는 인터넷상에서 대리자 역할을 하며 클라이언트와 서버 어느쪽에 붙는 지에 따라 Forward, Reverse 프록시로 구분된다.

 

2. Forward Proxy VS Reverse Proxy

더보기

 

 

Forward Proxy

 

 

 

 앞서 언급하였듯이 프록시가 붙는 위치에 따라 Forward Proxy, Reverse Proxy로 구분된다. 먼저 Forward Proxy는 위의 그림과 같이 클라이언트단에 붙어서 동작하는 프록시이다. 

 

 

 

 

 클라이언트에서 외부 서버로 요청 시 외부망으로 바로 나가는 것이 아니라 이 프록시를 거쳐서 이동하게 된다. 이 과정에서 프록시는 캐싱 및 암호화의 역할을 담당하게 된다. 

 

 

 

 

 캐싱을 하는 이유는 이전에 들어온 동일한 요청에 대해 응답 지연시간을 줄이기 위함이며, 암호화의 경우 외부망으로 나가는 요청에 대해 클라이언트의 정보를 암호화 하여 보안을 강화함에 있다고 볼 수 있다.

 

 

 

 

 

 

 

 

Reverse Proxy

 

 

 

 Forward Proxy와 반대로, Reverse Proxy의 경우 서버의 바로 앞에서 동작하는 Proxy이다. 외부에서 서버로 들어오는 요청은 서버로 Direct하게 들어가는 것이 아니라 이 Reverse Proxy를 거쳐서 전달된다.

 

 

 

 

 Reverse Proxy도 마찬가지로 캐싱과 보안의 이유로 사용된다. 캐싱된 데이터를 통해 클라이언트의 요청을 처리함으로서 응답 시간을 최소화하고, 서버에 대한 악의적인 요청을 Reverse Proxy에서 한번 검증을 하기 때문에 실제 서버에 대한 보안을 강화 할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

https://teachingforme.tistory.com/54

 

[Network] - 로드 밸런싱(Load Balancing)

목차 1. 로드 밸런싱(LB) 이란? 2. ELB(Elastic Load Balancer) 3. Nginx란? 4. 마치며 1. 로드 밸런싱(LB) 이란? 더보기 로드 밸런싱(load balancing)은 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋이상의 중앙처리

teachingforme.tistory.com

 

 

 

 

 다만 Reverse Proxy을 사용하는 데에는 서버의 로드 밸런싱(Load Balancing)을 위한 이유도 있다. 로드 밸런싱은 서버의 부하를 분산하기 위한 작업이며 이에 대해서는 이전에 위의 글에서 정리하였다.

 

 

 

 

 

 또한 Reverse Proxy의 경우 웹 서버에 대해 프록시를 운용하고자 할 때 Nginx라는 오픈 소스 소프트웨어를 이용하면 비교적 간단하게 구현할 수 있다.

 

 

 

 

3. 마치며

 

 프록시에 대해 접하게 될 때면 항상 알던 것과 달라서 혼란스러운 때가 많았는데 아마 Forward, Reverse에 대한 차이였으리라 생각이 든다.

 

 

 

 이전에 3학년 수업 때 C기반의 프록시 서버를 구현하는 과제가 있었는데, 지금 이 글을 쓰며 곱씹어보니 Forward Proxy를 구현해보라는 과제 였던 것 같다. 당시에는 과제하고 시험 공부에 치여서 이런 개념들을 자세히 몰랐었는데, 그 때에 이런 것들을 알았다면 좀 더 퀄리티있는 과제를 제출 할 수 있지 않았을까 한다.