
클라이언트가 자신을 통해, 다른 네트워크 서비스에 접속하게 해줄 수 있는 서버를 의미한다.
클라이언트의 요청을 서버로 전달하고 서버의 응답을 클라이언트에게 다시 보내는 역할을 수행한다.
프록시 서버는 클라이언트와 서버 간에 중계 역할을 하기 때문에 클라이언트와 서버 간의 직접적인 통신을 숨기어, 보안을 향상시키고 신원을 숨길 수 있는 장점이 있다.
프록시 서버는 웹 페이지, 이미지 및 기타 콘텐츠를 캐시하여 동일한 콘텐츠에 대한 여러 클라이언트의 요청에 대한 응답 시간을 단축할 수 있다.
프록시 서버는 중간에서 콘텐츠를 조작하거나 모니터링할 수 있기 때문에 개인 정보 보호에 대한 문제가 존재할 수 있는 단점이 존재한다.
네트워크 상의 위치와 데이터 제공의 방향성에 따라 Forward Proxy와 Reverse Proxy로 나눌 수 있다.
Forward Proxy는 클라이언트와 같은 내부망에 위치한다.
클라이언트는 프록시 서버에 외부 인터넷 접근 요청을 하고, 프록시 서버가 외부 인터넷에 클라이언트 대신 접속하여 결과를 받은 후, 클라이언트에 전달하는 서버이다.
클라이언트가 서버에 접근할 때 타켓서버의 주소를 포워드 프록시에 전달하여, 포워드 프록시가 인터넷으로 요청된 내용을 가져오는 방식이다.
클라이언트가 자주 접속하는 외부 인터넷 서비스가 있다면, 관련 데이터를 캐쉬로 저장해놓을 수 있어, 성능 향상도 가능하다.
보통 프록시 서버라 함은 포워드 프록시 서버를 의미한다.
Forward Proxy는 내부망의 프록시 서버가 본 서버에게 요청을 전달하므로, 본 서버에게 클라이언트가 누구인지 감출 수 있다.
Reverse Proxy는 Web Server / Wep Application Server 앞에 위치한다.
클라이언트는 Reverse Proxy에 요청하게 되고, Reverse Proxy가 관련 요청에 따라, 적절한 내부 서버에 접속하여 결과를 받은 후, 클라이언트에게 전달하게 된다.
보안상의 이유로 리버스 프록시 서버를 DMZ에 두고 실제 서비스 서버는 내부망에 위치시킨 후 서비스 하는 것이 일반적이다.
- DMZ
기업의 내부 네트워크와 외부네트워크 사이에 위치하는 구간이며, 내부 네트워크와 외부 네트워크 둘 다 접근할 수 있는 공간이다.
cf. 일반적인 구성 방법인 Web Server와 Web Application Server를 분리하여 구성하는 것도 Reverse Proxy로 볼 수 있다.
내부망의 특정 서버가 과부화되지 않도록 요청 트래픽을 관리할 수 있는 로드 밸런싱 등에도 유익하다.
클라이언트는 프록시 서버 url로만 접근이 가능하므로, Reverse Proxy는 본 서버의 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
https://dltlabs.medium.com/demystifying-forward-and-reverse-proxies-e52eea330e85