Server

[Server] Reverse Proxy / Forward Proxy 정리

후드리챱챱 2024. 3. 1. 11:04
반응형

 

프록시(Proxy)란?

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

 

프록시(Proxy)란 '대리' 라는 의미를 갖고 있으며, 서버와 서버 사이의 중계기 역할을 한다고 보면 된다.

 

프록시를 쓰는 이유는 보안상의 이유로 직접 통신할 수 없는 두 점사이에서 대리로 통신을 수행하며 보안성, 성능, 안전성을 향상 시키 위해서이다.

https://www.geeksforgeeks.org/what-is-proxy-server/

 

보통 웹은 클라이언트에서 서버로, 서버에서 클라이언트로 통신하며 데이터를 전달한다.

이때 필연적으로 중복되는 데이터를 반복하여 전달하는 상황이 발생하는데, 이렇게 동일한 요청을 매번 처리하는 것은 곧 리소스 낭비와 서버의 부하로 이어지게 된다.

 

때문에 본 서버에 도달하기 전에 새로운 서버(proxy server)를 미리 배치하여 중복 요청에 대해 (연산이 필요없는) 동일한 응답을 할 수 있다면, 클라이언트에겐 빠른 속도의 서비스를, 서버에게는 불필요한 부하를 줄이는 효과를 낼 수 있게 된다.

 

프록시의 종류

프록시 서버는 네트워크 상 어디에 위치 하느냐, 혹은 어느 방향으로 데이터를 제공하느냐에 따라 포워드 프록시(Forward Proxy)와 리버스 프록시(Reverse Proxy)로 나뉘게 된다.

 

포워드 프록시(Forward Proxy) 란?

 

포워드 프록시(Forward Proxy)는 클라이언트와 인터넷 사이에서 동작하는 중간 서버로, 클라이언트가 직접 웹 서버에 액세스하지 않고 프록시 서버를 통해 인터넷에 접속하도록 하는 서비스입니다. 클라이언트는 웹 서버에 대한 요청을 포워드 프록시에 보내고, 포워드 프록시는 해당 요청에 대한 응답을 클라이언트에게 반환합니다.

https://blog.naver.com/yhsterran/220372259447

 

포워드 프록시(Forward Proxy) 장점

 

1. 익명성 제공: 클라이언트는 포워드 프록시를 통해 웹 서버에 접속하기 때문에 웹 서버는 클라이언트의 실제 IP 주소를 알 수 없습니다. 이를 통해 클라이언트는 상대적인 익명성을 얻을 수 있습니다.

2. 접근 제어: 조직이나 기업에서는 포워드 프록시를 사용하여 특정 웹 사이트의 액세스를 제어하거나 차단하는 데 사용할 수 있습니다. 특정 도메인이나 콘텐츠 유형에 대한 액세스 권한을 제한할 수 있습니다.

3. 캐싱: 포워드 프록시는 이전에 요청한 콘텐츠를 캐시하여 동일한 요청에 대한 응답을 더 빠르게 제공할 수 있습니다. 이는 대역폭을 절약하고 응답 시간을 개선하는 데 도움이 됩니다.

4 .트래픽 필터링: 포워드 프록시는 클라이언트가 웹에 접속할 때 트래픽을 검사하고 필터링하여 악성 콘텐츠나 해로운 웹 사이트로부터 보호할 수 있습니다.

5. 대역폭 제어: 포워드 프록시를 사용하여 네트워크 대역폭을 효과적으로 관리하고, 불필요한 트래픽을 제한하여 대역폭 사용량을 최적화할 수 있습니다.

6. 보안 강화: 포워드 프록시는 외부 통신을 모니터링하고 보안 정책을 강화함으로써 내부 네트워크를 보호하는 데 도움이 됩니다.

 

리버스 프록시(Reverse Proxy) 란?

 

리버스 프록시(Reverse Proxy)는 클라이언트로부터 받은 요청을 백엔드 서버로 전달하고, 백엔드 서버로부터 받은 응답을 클라이언트에게 반환하는 서버 혹은 서비스입니다. 기본적으로 클라이언트는 리버스 프록시를 통해 서버에 액세스하며, 이는 일반적으로 웹 서버에 사용됩니다.

https://blog.naver.com/yhsterran/220372259447

 

리버스 프록시(Reverse Proxy) 장점

 

1. 보안 강화: 리버스 프록시는 외부에서 직접 서버에 접근하는 것을 방지하고, 클라이언트와 서버 간의 중간 위치에서 동작하기 때문에 보안을 강화할 수 있습니다. 클라이언트는 리버스 프록시와의 통신만 관여하며, 서버는 내부에서 동작하므로 서버의 실제 위치를 감출 수 있습니다.

2. 로드 밸런싱: 여러 서버에 대한 부하를 분산시켜주는 로드 밸런싱 기능을 제공합니다. 클라이언트의 요청을 여러 백엔드 서버에 분배하여 효율적인 서비스 제공이 가능합니다.

3. SSL 암호화: 리버스 프록시는 SSL(보안 소켓 계층) 암호화를 통해 안전한 통신을 지원할 수 있습니다. 클라이언트와 리버스 프록시 간의 통신, 그리고 리버스 프록시와 백엔드 서버 간의 통신이 모두 암호화될 수 있습니다.

4. 캐싱: 리버스 프록시는 서버에서 받은 응답을 캐시하여 동일한 요청에 대한 응답을 빠르게 반환할 수 있습니다. 이는 서버 부하를 줄이고 응답 시간을 최적화하는 데 도움이 됩니다.

5. 웹 애플리케이션 방화벽 (WAF): 리버스 프록시는 외부에서 들어오는 웹 트래픽을 검사하고, 악성 행위나 보안 위협으로부터 웹 애플리케이션을 보호하는 역할을 수행할 수 있습니다.

6. 단일 진입점: 리버스 프록시는 클라이언트에게는 단일 진입점으로 동작하여 서버의 구조를 숨기고 클라이언트 요청을 효율적으로 관리할 수 있습니다.

 

포워드 프록시 / 리버스 프록시 차이점

프록시 서버 위치

 - 포워드 프록시 서버는 클라이언트 앞에 위치

 - 리버스 프록시 서버는 웹서버/WAS 앞에 위치

 

프록시 서버 통신 대상

 - 포워드 프록시는 내부망에서 클라이언트와 Proxy 서버가 통신하여 인터넷을 통해 외부에서 데이터를 가져온다.

 - 리버스 프록시는 내부망에서 Proxy 서버와 내부망 서버가 통신하여 인터넷을 통해 요청이 들어오면 Proxy 서버가 받아 응답해준다.

 

감춰지는 대상

 - 포워드 프록시는 직접 서버 URL로 요청을 보내지만, 리버스 프록시는 Proxy 서버 URL로만 접근이 가능하낟.

   이로서 리버스 프록시는 본 서버의 IP 정보를 숨길 수 있는 효과를 얻게 된다.  

 - 포워드 프록시는 내부망에서 인터넷 상에 있는 서버에 요청할 때 먼저 포워드 프록시 서버를 호출하고 프록시가 서버에

   게 요청을 보내게되는데, 이로서 서버에게 클라이언트가 누구인지 감출수 있습니다.

   즉, 서버 입장에서 응답받는 IP는 포워드 프록시의 IP이기 때문에 클라이언트가 누군지 알 수 없다. 

 

 

[참고]

- https://inpa.tistory.com/entry/NETWORK-%F0%9F%93%A1-Reverse-Proxy-Forward-Proxy-%EC%A0%95%EC%9D%98-%EC%B0%A8%EC%9D%B4-%EC%A0%95%EB%A6%AC#%ED%94%84%EB%A1%9D%EC%8B%9Cproxy_%EB%9E%80?

 

 

반응형