포워드(Forward) 프록시
-
클라이언트가 example.com에 연결하려고 하면 사용자 PC가 직접 연결하는게 아니라
-
포워드 프록시 서버가 요청을 받아서 example.com에 연결하여
-
그 결과를 클라이언트에 전달(forward)해 준다.
-
포워드 프록시는 대개 캐슁 기능이 있으므로
-
이렇게 캐시를 해 두고 난 후 캐시 안에 있는 정보를 요구하는 요청에 대해서는
-
원격 서버에 접속하여 데이터를 가져올 필요가 없게 됨으로써 전송 시간을 절약 할 수 있게 됨과 동시에
-
불필요하게 외부와의 연결을 하지 않아도 된다는 장점을 갖게 된다.
-
또한 외부와의 트래픽을 줄이게 됨으로써 네트워크 병목 현상을 방지하는 효과도 얻을 수 있게 된다.
-
그리고 정해진 사이트만 연결하게 설정하는 등 웹 사용 환경을 제한할 수 있으므로 기업 환경등에서 많이 사용한다.
사용 목적
-
보안을 위해 익명으로 컴퓨터를 유지
-
캐시를 사용하여 리소스로의 빠른 접근
-
네트워크 서비스나 콘텐츠로의 접근 정책을 적용 (원치 않는 사이트를 차단)
-
사용률을 기록하고 검사하기 위해 (회사는 인터넷 이용을 파악)
-
밖으로 나가는 콘텐츠를 검사하기 위해 (데이터 유출 보호)
리버스(Reverse) 프록시
-
클라이언트가 example.com 웹 서비스에 데이터를 요청하면
-
Reverse Proxy는 이 요청을 받아서 내부 서버에서 데이터를 받은 후
-
이 데이터를 클라이언트에 전달하게 된다.
-
내부 서버가 직접 서비스를 제공해도 되지만 이렇게 구성하는 이유는 보안 때문이다.
-
보통 기업의 네트워크 환경은 DMZ라고 하는 내부 네트워크와 외부 네트워크 사이에 위치하는 구간이 존재하며
-
이 구간에는 메일 서버, 웹 서버, FTP 서버등 외부 서비스를 제공하는 서버가 위치하게 된다.
-
example.com 사는 서비스를 자바로 구현해서 WAS를 DMZ에 놓고 서비스해도 되지만
-
WAS는 보통 DB 서버와 연결되므로 WAS가 최전방에 있으면
-
WAS가 털릴 경우 DB 서버까지 같이 털리는 심각한 문제가 발생할 수 있다.
-
이 때문에 리버스 프록시 서버를 두고 실제 서비스 서버는 내부망에 위치시키고
-
프록시 서버만 내부에 있는 서비스 서버와 통신해서 결과를 클라이언트에게 제공하는 방식으로 서비스를 하게 된다.
-
특히 리눅스 환경이라면 리버스 프록시로 아파치 웹 서버를 사용한다면 SELinux 를 켜 놓으면
-
SELinux 의 기본 정책이 웹 서버는 톰캣의 8080, 8009 포트만 접근 할 수 있으므로
-
아파치 웹 서버가 해킹당해도 웹 서버 권한으로는 내부망으로 연결이 불가하다.