프록시
개요
프록시는 네트워크 상에서 클라이언트를 대신해 요청을 수행해주는 역할을 하는 소프트웨어를 말한다.[1]
proxy란 용어 자체는 15세기 초 대리인, 대리자를 의미하는 용어로서 등장했다고 한다.[2]
IT에서 프록시라는 개념은 90년대 초부터 인터넷이 발전하며 서버로서 등장하게 됐다.
디자인 패턴으로 프록시 패턴도 존재하는데, 이건 조금 더 이후에 나온 개념.
유형
포워드 프록시
흔히 말하는 프록시는 일단 포워드(forward) 프록시로, 위에서 말한 개념과 정확히 일치한다.
클라이언트가 보내는 어떤 요청은 실제로 앞단에 프록시를 거쳐서 나가게 된다.
기본적으로는 다음의 기능을 수행하는데 사용된다.
- 클라이언트의 실제 정보를 숨긴다.
- 클라이언트 대신 신원을 제공한다.
- 캐싱을 수행할 수 있다.
- 원치 않는 서비스로의 접근을 원천 차단한다.
첫번째가 사람들에게는 가장 익숙한 프록시 사용 방법일 것이다..
국가 차단 IP를 우회할 때 유용하게 쓰이는 게 바로 프록시이다.
아무튼 클라 앞단에 위치해 클라를 대신하는 프록시가 가장 기본!
리버스 프록시
그러나 클라만 프록시를 쓰랴?
서버도 프록시를 쓸 수 있다!
서버 측에서 사용하는 프록시를 리버스 프록시라고 부른다.
실제 서비스 앞단에 위치시켜 클라의 요청을 받는 서버로서 기능시키는 것이다.
다음의 이점을 가질 수 있다.
- 실제 서버의 정보를 숨긴다.
- 실제 ip를 감추어 공격표면을 줄인다.
- 아예 로드밸런서로서 활용하기도 한다.
- 프록시는 L7 단의 개념이지만, L7 로드밸런서도 있으므로 로드밸런서가 곧 프록시라고도 말할 수도 있겠다.
- 클라의 요청을 커스텀해 아예 가상 호스팅을 할 수 있다.
- 가상 호스팅은 실제 클라가 요청을 날릴 때 사용한 호스트 이름은 아니지만 아무튼 서비스가 자기 자신을 인식하거나 자신에게 트래픽을 받을 때 사용하는 서버의 호스트를 말한다.
- 내부 네트워크로 트래픽이 들어와 서버에 전달될 때는 TLS를 풀어 평문으로 통신하여 속도를 높일 수 있다.
처음에는 리버스 프록시라는 개념이 로드 밸런서, api gateway와 너무 헷갈렸다.
근데 지금 보면, 그냥 로드밸런서도 프록시고 api gateway도 프록시다.
프록시란 개념은 아무튼 네트워크 트래픽을 중계하는 대리자를 뜻하는 거라 트래픽이 오고가는 과정 상에서 위치한 중간자라면 프록시라 할 수 있다.
대신 조금 한정을 짓자면, L7 계층에서 동작하는 중간자라고 보면 되겠다.
왜냐하면 통신을 하는 주체와 대상에 대해 중간자로 위치하는 역할을 하는 것이기 때문이다.
관련 문서
이름 | noteType | created |
---|---|---|
프록시 | knowledge | 2025-04-14 |
2W - 인그레스 게이트웨이 실습 | published | 2025-04-17 |
2W - 엔보이 | published | 2025-04-19 |