클라이언트가 자신을 거쳐 다른 네트워크에 접속할 수 있도록 중간에서 대리인 역할을 하는 서버
서버와 클라이언트 사이에서 요청과 응답을 처리해준다
한번 전송한 데이터는 프록시 시스템에 캐시로 저장하여 속도를 향상 시킬 수 있다.
프록시 서버를 통한 클라이언트 - 웹 서버 통신 순서
클라이언트 -> 프록시 서버로 데이터 전송
프록시 서버 -> 웹 서버로 요청
웹 서버 -> 프록시 서버로 응답
프록시 서버 -> 클라이언트로 데이터 전송
프록시 서버 사용 목적
1. 캐시 데이터를 이용하기 위해
프록시 서버에 요청된 내용을 캐시로 저장해둔다. 그러면 캐시에 저장된 내용에 대한 요청은 웹 서버에 접속하지 않고 캐시에 저장되어 있는 내용을 그대로 전송하면 되기 때문에 시간을 절약할 수 있으며, 외부 트래픽을 줄임으로 네트워크 병목 현상도 방지할 수 있다.
2. 보안의 목적
클라이언트가 웹 서버로 바로 접근하지 않고 프록시 서버를 중간에 경유하면 IP를 숨기는 것이 가능하다.
프록시 방화벽으로 사용하기도 한다. (방화벽과 프록시 서버 비교 포스팅 예정)
3. 접속 우회
IP 검사를 통해 특정 지역에서의 접속임을 감지해 접속이 제한되는 사이트들이 있다. 이때 프록시 서버를 사용하면 접속을 다른 지역으로 우회할 수 있다.
인터넷 익스플로러 -> tools -> internet options -> connections -> LAN setting에서 프록시 서버 IP와 포트를 설정하면 접속 제한을 우회할 수 있다.
프록시의 종류
Forward Proxy
일반적으로 말하는 프록시 서버
클라이언트가 서버로 요청할 때 직접 요청하지 않고 프록시 서버를 통해 요청하는 방식
한번 전송한 데이터를 캐시에 저장하여 재요청시 서버를 거치지 않고 응답하여 속도를 향상시킬 수 있음
Reverse Proxy
웹 서버를 리버스 프록시 서버로 설정
클라이언트로부터 요청이 들어오면 리버스 프록시 서버(웹 서버)는 내부 서버(보통 WAS)에서 데이터를 받은 후에 이 데이터를 클라이언트에게 다시 전달
Reverse Proxy의 장점
보안
- 보통 기업의 네트워크 환경엔 내부 네트워크와 외부 네트워크 사이에 위치하는 구간이 존재하는데, 그 구간에 외부에 서비스를 제공하는 서버(메일 서버, 웹 서버, DNS 서버)를 배치하고 네트워크는 1,2차 방화벽으로 보호한다.WAS를 위의 구간에 함께 놓고 서비스해도 되지만 WAS는 보통 내부의 DB와 연결되어 있기때문에 만약, 최전방에 있는 WAS가 털릴 경우 DB와 관련된 서버까지 모두 털리는 심각한 보안 문제가 발생할 수 있다. 따라서 위의 구간에 리버스 프록시로 설정한 웹 서버를 두고 WAS는 내부 네트워크에 위치시킨다.
속도와 안정성
- 리버스 프록시 개념을 이해하고 구성하면 이 앞에 캐시 서버를 붙이거나 SSL 하드웨어 가속기를 연동하는등 아키텍처 측면에서 성능 향상이 용이해 진다.
신뢰성 증대
- 리버스 프록시를 클러스터로 구성하면 가용성을 높일 수 있고 사용자가 증가할 경우 웹 서버나 WAS를 유연하게 늘릴 수 있다.
리버스 프록시 앞에 L4나 로드밸런서를 붙이면 RR, Least connection등 상황에 맞는 분배 알고리즘을 적용해 서비스 신뢰성을 높일 수 있다.