Proxy
클라이언트와 서버 사이에서 중계 역할을 수행하는 컴퓨터 시스템이나 응용 프로그램을 말한다.
Proxy 사전적 의미로 ‘대리’
하는 것을 뜻한다.
이것으로 컴퓨터에서 어떠한 작업을 대신하는 것을 뜻한다.
Proxy Server
프록시 서버는 클라이언트에서 서버로 접속을 할 때 직접적으로 접속하지 않고 중간에 대신 전달하는 서버를 의미한다.
출처 : https://hylog.vercel.app/posts/what-is-proxy
Proxy Server 요청과 응답 과정
과정
- 클라이언트에서 웹 브라우저를 URL 을 입력하여 프록시 서버로 Request 를 보낸다.
- 프록시 서버는 내부에서 설정된 요청받은 URL 과 연결된 웹 서버로 Request 를 보낸다.
- Request 를 받은 웹 서버는 Response 를 보내준다
- 프록시 서버가 Response 를 받고 다시 클라이언트의 웹 브라우저로 Response 를 보낸다.
이점
- 클라이언트와 서버 간의 직접적인 통신을 막음
- 보안강화
- 로드 밸런싱 등의 기능을 수행
Proxy 종류
웹 프록시 (Web Proxy)
- 웹 페이지를 요청하는 클라이언트와 웹 서버 사이에서 중계 역할을 수행
- 웹 프록시는 캐싱을 이용하여 웹 페이지를 빠르게 전송한다.
- 웹 필터링을 통해 사용자가 웹 사이트를 접근하는 것을 제어한다.
리버스 프록시 (Reverse Proxy)
- 웹 서버와 클라이언트 사이에서 요청을 수신하여 이를 내부 서버로 전달한다.
- 보안상 이유로 내부 서버에 직접 접근하지 않고, 외부에서 접근할 수 있는 공개적인 IP 주소를 사용하여 서버를 보호한다.
익명 프록시 (Anonymous Proxy)
- 사용자의 IP 주소를 숨기고, 웹 페이지를 요청하는 클라이언트와 웹 서버 사이에서 중계
- 인터넷 사용자의 개인 정보를 보호하기 위해 사용
투명 프록시 (Transparent Proxy)
- 웹 페이지를 요청하는 클라이언트와 웹 서버 사이에서 중계
- 사용자의 IP 를 숨기지 않음
- 보안상의 이유로 내부 네트워크에 있는 서버에 직접 접근하지 않고 프록시를 거쳐야만 접근하도록 하는 방화벽 역할을 한다.
SOCKS 프록시 (SOCKS Proxy)
- 다양한 프로토콜을 지원하는 프록시
- TCP 및 UDP 데이터를 전송가능
- 사용자 인증 기능 지원
Proxy 의 역할
성능 개선
캐싱
- 이전에 요청한 내용을 캐시하여 동일 요청시 서버에 요청하지 않고 캐시된 데이터를 반환할 수 있다
- 네트워크 병목 현상 해결하고, 응답 속도를 향상시킬 수 있다.
익명화
- 클라이언트 IP 를 가릴 수 있어 익명성 제공
- 개인정보 사용자 프라이버시를 보호
필터링과 접근 제어
- HTTP 요청 및 응답을 필터링하여 접근 제어, 콘텐츠 제한 웹 사용량 제한 등 수행
- 보안 강화와 네트워크 대역폭 절약 효과
보안
- 클라이언트 IP 주소 은닉
- 필터링을 통해 악성 코드나 스팸 차단
부하 분산 (로드 밸런싱)
- 여러 대의 서버에게 클라이언트들의 요청을 분산 시키는 로드 밸런싱 기능을 수행
- 서버의 부하를 분산시켜 서버의 성능을 향상
- 안정적인 서비스를 제공