[ CS / Network ] Proxy

황승환·2022년 5월 12일
0

Python

목록 보기
298/498

Proxy

프록시란 대신한다는 의미를 가지고 있다. 네트워크 상에서 두 컴퓨터 간의 통신이 발생할 때에 서로에게 직접 요청하는 것지 않고 중간에서 대리로 통신 역할을 하게 된다. 이렇게 중간에서 역할을 하는 서버를 프록시 서버라고 하고, 이러한구조를 프록시라고 한다. 중간 서버라고 이해하면 쉽게 이해가 가능할 것이다.

프록시는 구조에 따라 포워드 프록시(Forward Proxy)와 리버스 프록시(Reverse Proxy)로 구분된다.

Forward Proxy

일반적인 프록시는 포워드 프록시를 의미한다. 포워드 프록시는 클라이언트가 서버에 요청을 하고자 할 때, 클라이언트의 요청을 프록시 서버가 받아 서버에 대리로 요청을 보내게 된다. 이 경우에 서버가 받는 IP는 클라이언트의 IP가 아닌 프록시 서버의 IP가 되고, 서버에서는 클라이언트가 누구인지 알 수 없게 된다. 이렇게 포워드 프록시는 서버에 요청을 한 클라이언트가 누구인지 감춰주는 역할을 한다.

이러한 특징때문에 포워드 프록시는 회사 내부망에 많이 이용된다.

특징

캐싱

포워드 프록시는 클라이언트의 요청을 프록시 서버에서 캐싱처리 하기 때문에 동일한 요청을 여러 번 보낼 경우의 성능이 좋다. 이렇게 포워드 프록시는 정적 데이터를 저장하여 동일한 요청이 들어오면 바로바로 응답할 수 있다.

IP 우회

서버로부터 클라리언트의 IP를 숨길 수 있다.

제한

정해진 사이트에만 접속할 수 있도록 제한할 수 있다. 이러한 보안 상의 이유로 회사 내부망으로 사용된다.

Reverse Proxy


리버스 프록시는 포워드 프록시와 반대로 서버에서 클라이언트로 응답을 보낼 때 클라이언트로 바로 보내지 않고, 프록시 서버를 거쳐서 보내게 된다. 이는 애플리케이션 서버를 감추게 된다.

리버스 프록시의 예시로는 Nginx, Apache Web Server 등이 있다.

특징

Load Balancing

리버스 프록시 뒤에 여러 개의 WAS를 두어 사용자의 요청을 분산할 수 있다. End-Point마다 서버를 설정하여 호출할 수 있기 때문에 역할에 따라 서버의 트래픽을 분산할 수 있다.

보안

클라이언트에게 애플리케이션 서버에 대한 정보를 주지 않기 때문에 보안에 유용하다. 이러한 이점으로 DMZ같은 네트워크에 리버스 프록시를 적용시킨다.

profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글