Proxy서버란?
클라이언트와 서버간의 중계 서버로, 통신을 대리 수행하는 서버
Client - Forward Proxy - Internet - Server
Froward Proxy는 Client와 Internet서버 사이에 위치하고 있다.
상황)
1. Client가 서버에게 요청을 하였을 때 해당 요청에 대한 응답을 Forward Proxy 서버가 캐싱해둠.(기억해둔다는 의미)
2. 다른 Client가 동일한 요청을 한다면 서버까지 요청이 전달되지 않고 Forward Proxy 서버가 해당 요청에 대하여 캐싱해둔 응답을 바로 Client에게 전달해준다.
Server에게 Client의 정보를 감춘다.
Forward Proxy 서버가 없다면 Client의 요청은 인터넷을 거쳐 바로 서버로 전송된다.
Forward Proxy 서버를 둔다면 Client의 요청은 Forward Proxy 서버를 거쳐서 인터넷을 통해 서버로 전송된다.
접근 제어 (Access Control): Forward Proxy는 특정 사이트나 콘텐츠에 대한 액세스를 제어할 수 있다. 이를 통해 기업이나 조직에서 특정 웹사이트에 대한 접근을 제한하거나 모니터링할 수 있다.
보안 기능 (Security Functions): Forward Proxy는 보안을 강화하기 위해 다양한 보안 기능을 제공할 수 있다. 이는 악성 사이트 블로킹, 콘텐츠 필터링, 바이러스 및 악성 코드 탐지 등을 포함할 수 있다.
트래픽 로깅 및 감사 (Traffic Logging and Auditing): Forward Proxy는 클라이언트와 서버 간의 모든 트래픽을 기록하고 감사할 수 있다. 이를 통해 네트워크 활동을 모니터링하고 보안 이슈를 식별하는 데 도움이 된다.
데이터 압축 (Data Compression): 몇몇 Forward Proxy는 전송되는 데이터를 압축하여 대역폭을 절약하고 빠른 전송을 도모할 수 있다.
Client - Internet - Reverse Proxy - Server
Reverse Proxy는 Internet과 Server사이에 위치한다.
서버의 정보를 Client로 부터 숨길 수 있다.
Client들은 Server의 주소를 알 수 없다. Reverse Proxy 서버를 서버라고 생각하고 요청을 보내면 Client의 요청을 받은 Reverse Proxy 서버가 서버들에게 Client의 요청을 전달한다.
서버의 부하를 분산시키는것
Client들의 많은 요청들을 여러개의 서버에 분산하여 요청한다.
SSL/TLS 종단점 (SSL/TLS Termination): Reverse Proxy는 클라이언트와 서버 간의 암호화 통신을 처리하는데, 이를 SSL/TLS 종단점 해제라고 한다. 클라이언트와 Reverse Proxy 간의 통신은 암호화되지만, Reverse Proxy와 서버 간의 통신은 보통 암호화되지 않은 상태로 이루어질 수 있다. 이는 서버 측에서 SSL/TLS 인증서 관리를 단순화시키고 성능을 향상시킬 수 있다.
애플리케이션 방화벽 (Application Firewall): Reverse Proxy는 애플리케이션 방화벽 역할을 할 수 있다. 악성 트래픽이나 보안 위협으로부터 애플리케이션을 보호하기 위해 Reverse Proxy가 요청을 검사하고 필터링할 수 있다.
컨텐츠 압축 및 최적화: Reverse Proxy는 전송되는 데이터를 압축하고 최적화하여 대역폭을 절약하고 빠른 로딩을 도모할 수 있다. 이는 사용자 경험을 향상시키고 네트워크 부하를 감소시킨다.
헤더 조작 및 수정: Reverse Proxy는 클라이언트와 서버 간의 헤더를 수정하거나 추가할 수 있다. 이를 통해 보안 정책을 적용하거나 요청과 응답을 조작할 수 있다.
단일 진입점 (Single Entry Point): Reverse Proxy를 사용하면 클라이언트는 하나의 진입점만을 알게 되며, 이를 통해 서버 구조를 숨길 수 있다. 이는 보안을 강화하고 서버의 관리를 단순화시킨다.