프로그래밍 노트/인프라

Reverse Proxy, Forward Proxy (프록시란?)

초보개발자 깡냉스 2020. 3. 3. 21:33
728x90
반응형

프록시란?

프록시(Proxy)란 '대리'라는 의미를 갖고 있으며, 서버와 서버사이의 중계기역할을 한다.
보안상의 이유로 직접 통신할 수 없는 두 점사이에서 대리로 통신을 수행하는 기능을 가리켜 '프록시'라고 하며, 프록시서버로 부른다.

proxy1
proxy2

Forward 프록시

프록시 서버를 '클라이언트 호스트들과 원격 리소스 사이'에 위치시키는 방법
프록시 서버는 클라이언트가 요청한 리소스를 원격 리소스에서 가져와서 클아이언트에게 돌려주는 역할을 수행한다. 만약 캐시가 있다면, 다음 요청시에는 캐시된 데이터를 제공해준다.
이 방식은 대역폭을 감소시킬 수 있다는 것과 접근 정책 구현에 있어 다루기 쉬우면서 비용도 저렴하다는 장점이 있어 기업환경에서 많이 사용한다.
ex) 기업 사내망에서 특정 url에는 접근을 못하게 하는 방법(facebook.com/instagram.com/kakaotalk)

forward proxy

Reverse 프록시

프록시 서버를 '인터넷 리소스 또는 인트라넷 리소스 앞'에 위치시키는 방법
내부 서버가 직접 서비스를 제공해도 되지만 이렇게 구성하는 이유는 보안 때문이다.
보통 기업의 네트워크환경에서는 DMZ라고 부르는 내부네트워크/외부네트워크 사이에 위치하는 구간이 존재한다. (내부네트워크/외부네트워크에 둘다 접근할 수 있는 공간)
이 구간에는 메일 서버, 웹 서버, FTP 서버 등 외부 서비스를 제공하는 서버가 위치하게 된다.
WAS를 DMZ에 놓고 서비스해도 되지만 보안상문제가 있기 때문에 그렇게 하진 않는다. (WAS는 DB서버와 연결되어 있으므로, WAS가 해킹당할 경우 DB서버까지 해킹당할 수 있는 문제가 발생할 수 있음)
따라서 리버스 프록시 서버를 DMZ에 두고 실제 서비스 서버는 내부망에 위치시킨 후 서비스 하는 것이 일반적이다.

우리가 구성하는 일반적인 WEB(Apache, nginx) - WAS(Tomcat)분리 형태를 Reverse 프록시라고 보면 된다.
여기서 WEB(Apache, nginx)가 reverse proxy가 된다.(물론 물리적인 한서버에 web,was가 존재한다면 reverse proxy라고 볼 수 없다.)

reverse proxy

사진 출처 : https://www.imperva.com/learn/performance/reverse-proxy/

728x90
반응형