[Web] Proxy

thereisname·2024년 5월 2일

Web

목록 보기
4/6

1. Proxy란?

Proxy는 사전적 의미로 "대리" 하는 것을 뜻한다.
컴퓨터 과학적인 의미로는 프로토콜 상에서 무엇인가를 대신하는 것을 뜻한다.

1.1 Proxy Server

프록시 서버는 클라이언트에서 서버로 접속을 할 때 직접적으로 접속하지 않고 중간에 대신 전달해주는 서버를 의미한다. 프록시 서버는 클라이언트(웹 브라우저)와 서버 사이에 존재한다.

프록시 서버는 사용자의 IP 주소 숨기기, 유지 보수 또는 장애물 우회, 인터넷 암호화 또는 보안 연결 제공과 같은 목적으로 사용될 수 있다.

Client와 Server 사이에 프록시 서버가 중계를 할 떄,
Client는 프록시 서버를 "Server"라고 인식하고, Server는 프록시 서버를 "Client"라고 인식합니다.

2. Proxy 종류

Proxy는 크게 Forward Proxy와 Reverse Proxy로 나뉜다.

2.1 Forward Proxy

클라이언트와 인터넷 사이에 위치하는 프록시 서버이다. 클라이언트의 요청을 받아 실제 목적지 서버와 통신하고, 그 결과를 클라이언트에게 전달한다. 이를 통해 클라이언트의 IP 주소를 숨기고, URL 필터링 및 캐싱 기능을 제공한다.

즉, 클라이언트가 서버에 접근하고자 할때, 클라이언트는 타겟 서버의 주소를 포워드 프록시에 전달하여, 포워드 프록시가 인터넷으로 요청된 내용을 가져오는 방식이다.

예를 들어 우리가 naver.com 을 요청하면 포워드 프록시 서버가 naver.com 리소스를 대신 받아와 클라이언트에게 내밀어준다(forward)고 생각하면 된다.

우리가 흔히 말하는 ‘프록시 서버’란 바로 포워드 포록시 서버를 의미하는 것이다.

포워드 프록시 이점

  • 클라이언트 접근 제어: 해당 기관에 속한 사람들이 그들이 방문하고자 하는 웹사이트에 직접적으로(directly) 방문하는 것을 방지할 수 있다. 예를 들어, 포워드 프록시 서버에 룰을 추가해서 특정 사이트에 접속하는 것을 막을 수 있다.

  • 클라이언트 은닉(암호화): 클라이언트의 요청은 포워드 프록시 서버를 통과할 때 암호화된다. 암호화된 요청은 다른 서버를 통과할 때 필요한 최소한의 정보만 갖게 되는데, 이는 클라이언트의 IP를 감춰주는 보안 효과를 내준다.

  • 캐싱: 우리가 어떤 웹 페이지에 접근하면 프록시 서버는 해당 페이지 서버의 정보를 캐싱(임시보관)해둔다.


2.2 Reverse Proxy

웹 서버와 클라이언트 사이에 위치하는 프록시 서버로 라이언트의 요청을 받아 실제 웹 서버에 전달하고, 웹 서버의 응답을 클라이언트에게 전달한다.

클라이언트는 웹서비스에 접근할때 웹서버에 요청하는 것이 아닌, 프록시로 요청하게 되고, 프록시가 배후(reverse)의 서버로부터 데이터를 가져오는 방식이다.

클라이언트쪽으로 데이터(response)를 밀어주는게 포워드라면, 그 반대편인 서버 쪽으로 데이터(request)를 밀어주는 것이 리버스 프록시 라고 보면 된다.


로드 밸런서(Load Balancer)

네트워크 트래픽을 여러 서버에 균등하게 분산시키는 장치이다. 이를 통해 서버 과부하를 방지하고, 애플리케이션의 가용성, 확장성, 보안 및 성능을 향상시킬 수 있다.

profile
개발을 공부하는 주니어 개발자

0개의 댓글