본문 바로가기
Engineering WIKI/Docs

Reverse Proxy, Forward Proxy 개념 뿌수기!

by wonos 2023. 8. 19.

개념

프록시 서버

  • 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다.
  • 중계 서버라고 생각하면 된다. 클라이언트와 서버가 직접 통신하지 않고 중계 서버인 프록시 서버를 사용하여 보안, 트래픽 분산 등 여러 장점을 가질 수 있도록 해준다.

장점

  • 보안 : 프록시 서버를 사용하게 되면 클라이언트나 서버의 IP를 모두 숨길 수 있다. 실제 서버 또는 클라이언트의 IP를 숨기고 프록시 서버의 IP만 공개됨에 따라 해킹 대비 가능.
  • 성능 : 캐싱 기능과 트래픽 분산으로 성능 향상을 가져올 수 있다.
    • 캐싱 기능은 자주 사용되는 동일한 요청을 캐싱하여 재활용하는 방식 실제 서버로 다시 호출하지 않고 프록시 서버가 대신 응답을 주어 서버의 자원 사용을 줄여줌.
    • 일부 프록시 서버는 로드 밸런싱도 제공하여 여러 대의 분산된 서버가 있다면 서버의 트랙픽을 분산시켜 줍니다. 그리고 앤드 포인트(URL)마다 호출하는 서버를 설정할 수 있어 역할에 따라 서버의 트래픽을 분산할 수도 있죠.

기타

  • 아파치 웹서버(apache web server)에는 mod_proxy라는 모듈에서 forward proxy와 reverse proxy 두 가지 기능을 제공하며, nginx는 필요한 기능만 제공하는 고성능 웹 서버에 맞게 reverse proxy만 제공.

Reverse Proxy

포워드 프록시의 반대방향이라고 생각하면 된다.

클라이언트가 서버를 호출할 때 리버스 프록시를 호출하게 되고 프록시 서버가 서버를 요청하여 받은 응답을 클라이언트에게 전달하는 방식이다.

리버스 프록시는 서버가 누구인지 감추는 역할

클라이언트는 리버스 프록시 서버를 먼저 호출하기 때문에 실제 서버의 ip를 알 수 없다.

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

  • 로드밸런싱 : 리버스 프록시 뒤에 여러 개의 WAS를 둠으로써, 사용자 요청을 분산할 수 있다. End-point 마다 호출 서버를 설정할 수 있어 역할에 따라 서버의 트래픽을 분산할 수도 있다.
  • 보안 : 보안 상의 이유로 서버에 직접 접근하는 것을 막기 위해 DMZ같은 네트워크에 리버스 프록시를 구성하여 접근하도록 한다.

리버스 프록시의 예시 - NginX, Apache Web Server

Forward Proxy

일반적으로 프록시라고 하면 포워드 프록시를 지칭함.

클라이언트가 서버로 요청할 때 직접 요청하지 않고 먼저 프록시 서버를 통해 요청하는 방식

ex) 회사 내부 인트라넷에서 인터넷상에 있는 서버에 요청할 때 먼저 프록시 서버를 호출하게 되는데 이런 방식이 포워드 프록시다. ⇒ 기업 사내망에서 주로 사용

서버에게 클라이언트가 누구인지 감추는 역할을 해준다.

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

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

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

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