-
[Infra] Forward proxy / Reverse proxyInfra 2020. 7. 5. 16:04
클라이언트가 특정 사이트(test.com)에 접근하려고 할 때 클라이언트 pc가 직접 연결하는 게 아니라 서버가 요청을 받아 특정 사이트에 연결하여 연결된 결과를 다시 클라이언트에 전달(forward) 해주는 데 이를 Forward proxy(포워드 프록시)라고 한다. (여기서 클라이언트란 내부망의 접속해 있는 클라이언트를 말한다)
이러한 포워드 프록시는 캐쉬 기능을 가지기 때문에 반복적인 컨텐츠를 가져오는 작업이 있다면 부하를 줄일 수 있고 성능을 향상시킬 수 있다. 정해진 사이트만 연결하게 하므로 웹 사용 환경을 제한 할 수 있으므로 기업 환경에서 많이 사용한다.
클라이언트가 특정 사이트에 접근 요청시 Reverse proxy(리버스 프록시)에서 요청을 받아 내부 서버에서 데이터를 받은 후 클라이언트로 전달한다. 내부 서버가 직접 서비스를 제공해도 되지만 이렇게 구성하는 이유중 하나는 보안때문이다. (여기서 클라이언트란 외부에서 접속한 클라이언트를 말한다)
보통 기업의 네트워크 환경은 DMZ 라고 하는 내부 네트워크와 외부 네트워크 사이에 위치하는 구간이 존재하며 이 구간에는 메일 서버, 웹 서버, FTP 서버등 외부 서비스를 제공하는 서버가 위치하게 된다.
example.com 사는 서비스를 자바로 구현해서 WAS 를 DMZ 에 놓고 서비스해도 되지만 WAS 는 보통 DB 서버와 연결되므로 WAS 가 최전방에 있으면 WAS 가 털릴 경우 DB 서버까지 같이 털리는 심각한 문제가 발생할 수 있다.
이때문에 리버스 프락시 서버를 두고 실제 서비스 서버는 내부망에 위치시키고 프락시 서버만 내부에 있는 서비스 서버와 통신해서 결과를 클라이언트에게 제공하는 방식으로 서비스를 하게 된다.
특히 리눅스 환경이라면 리버스 프락시로 아파치 웹 서버를 사용한다면 SELinux 를 켜 놓으면 SELinux 의 기본 정책이 웹 서버는 톰캣의 8080, 8009 포트만 접근 할 수 있으므로 아파치 웹 서버가 해킹당해도 웹 서버 권한으로는 내부망으로 연결이 불가하다.
또한 리버시 프락시를 cluster로 구성해 놓으면 가용성을 높일 수 있고 사용자가 증가하는 상황에 맞게 Web Server 나 WAS 를 유연하게 늘릴 수 있는 장점이 있다.
출처 : https://www.lesstif.com/system-admin/forward-proxy-reverse-proxy-21430345.html
포워드 프록시(forward proxy) 리버스 프록시(reverse proxy) 의 차이
www.lesstif.com
'Infra' 카테고리의 다른 글
[Infra] nginx reverse proxy 구성 (0) 2020.07.06