1. 프록시
1.1 프록시 서버
: 클라이언트가 프록시 서버를 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 시스템이나 프로그램
- 프록시 : 대리로 통신
- 서버와 클라이언트 사이에 중계기로서 대리로 통신하는것이 프록시 서버
- 클라이언트와 서버사이의 중계 서버
- 보안 목적 또는 캐싱 기능 제공
- 프록시 서버의 위치에 따라 Forward Proxy와 Reverse Proxy로 나뉜다.
1.2 포워드 프록시
특징
- 일반적으로 프록시라하면 포워드 프록시를 의미
- 클라이언트가 인터넷에 직접 접근이 아닌 포워드 프록시를 거쳐서 인터넷과 연결
- 프록시 서버는 Cache를 사용하여 자주 사용하는 데이터라면 캐시를 사용해 성능 향상 가능
- 서버는 클라이언트의 ip가 아닌 프록시 서버의 ip를 받으므로 클라이언트가 누구인지 알수없다.
- 서버에게 클라이언트가 누구린지 감춰주는 역할
- 기업 사내망에서 주로 사용
역할
1. 캐싱
- 첫번째 요청 이후 동일한 요청이 온다면, 프록시 서버에 캐싱된 내용을 전달해 성능을 향상
2. IP 우회
3. 제한
- 보안이 중요한 사내망에서 정해진 사이트만 연결해 웹 사용 환경을 제한할 수 있다.
1.3 리버스 프록시
특징
- 클라이언트가 인터넷에 데이터를 요청하면 리버스 프록시가 이 요청을 받아 서버와 통신후 클라이언트에 전달
- 클라이언트는 내부 서버에 대한 정보를 알필요 없이 리버스 프록시에만 요청하면됨
- 내부 서버(WAS)에 직접 접근하면 DB에 접근이 가능하기때문에 중간에 리버스 프록시를 둔다.
- 내부 서버에대한 설정으로 로드 밸런싱이나 서버 확장등에 유리
- ex) NginX, Apache Web Server
역할
1. 로드 밸런싱
- 리버스 프록시 뒤에 여러 WAS를 두어 사용자의 요청을 분산할수있다.
- End-Point 마다 호출 서버를 설정할 수 있어 역할에따라 서버의 트래픽 분산 가능
2. 보안
- 보안상의 이유로 서버에 접근을 막기위해 DMZ 같은 네트워크에 리버스 프록시 구성
아래의 그림에서 NginX가 프록시 서버 역할을 한다.
애플리케이션 서버 앞에 위치하였기때문에 리버스 프록시이다.
정리
- 프록시 서버 : 클라이언트와 서버사이의 중계 서버
- 프록시 서버의 위치에따라 포워드, 리버스로 나뉜다.
- Forward Proxy
- 클라이언트가 요청하는 End Point가 실제 서버 도메인
- 프록시는 둘 사이의 통신을 담당
- 클라이언트가 감춰짐 (요청받는 서버는 포워드 프록시를 통해 받으므로)
- Reverse Proxy
- 클라이언트가 요청하는 End Point가 프록시 서버의 도메인
- 실제 서버의 정보는 알수없음
- 서버가 감춰짐 (클라이언트가 리버스 프록시 서버에 요청하기때문에)