CS 공부

[Network] 프록시 서버 (Proxy Server)

콘요맘떼 2022. 4. 16. 14:27

프록시 서버 (Proxy Server)

  프록시 서버는 여러 네트워크 서비스 사이에서 그 통신을 중계해주는 역할을 수행한다. 프록시는 리퀘스트를 가로채고 그에 대한 리스폰스를 전달해준다. 따라서 클라이언트와 서버 입장에서는 해당 통신이 프록시를 거쳐서 이루어진다는 사실을 인지하지 못한다. 프록시는 사용자의 로컬 컴퓨터에 위치할 수도, 인터넷 상에서 두 포인트 사이의 어딘가에 위치할 수도 있다.

 

 

프록시 서버를 사용하는 이유

(1) 보안

  프록시 서버를 사용하는 첫 번째 이유는 보안적인 문제이다. 방화벽 등으로 인해 직접 통신할 수 없는 두 네트워크 포인트가 존재할 때 프록시 서버를 사용하면 방화벽 내부의 시스템을 보호하면서 제한된 외부와의 통신을 허용할 수 있다. (그를 위해 프록시 서버가 가로챈 리퀘스트의 헤더를 임의로 변경하는 등의 작업이 이루어질 수 있다.)

 

(2) 리퀘스트 캐시

  프록시 서버를 사용하는 두 번째 이유는 바로 캐싱이다. 프록시 서버를 활용하여 리퀘스트들을 캐싱한다면 통신 속도를 향상시킬 수 있다. 만약 가로챈 리퀘스트가 캐시 안에 존재하는 경우 해당 리퀘스트는 실제 서버로 전송되지 않으며 캐싱된 정보를 통해 그에 대한 리스폰스를 돌려준다. 모든 서버는 내부 통신보다 외부 통신이 훨씬 느린 성능을 보여준다. 만약 캐싱 기능이 지원되는 프록시 서버를 통해 서버의 외부 통신을 줄여준다면 서버가 받는 트래픽 부담을 감소시켜 줄 수 있다.

  

 

프록시 서버의 종류

(1) 포워드 프록시 (Forward Proxy)

  인터넷 상의 아무 서버에나 리퀘스트를 대신 전달해주는 프록시 서버로 캐시 기능을 통해 웹 성능을 향상시킨다. 클라이언트는 서버를 알 수 있지만 서버는 프록시를 거쳐서 리퀘스트가 전달되기 때문에 클라이언트를 알 수 없다.

이미지 출처 : https://sorjfkrh5078.tistory.com/280

 

(2) 리버스 프록시 (Reverse Proxy)

  클라이언트 측에서 서버 접속을 위해 프록시 서버를 거치는 일반적인 포워드 프록시와 반대로 서버 측에서 미리 프록시를 이용하는 것을 말한다. 리버스 프록시는 인터넷으로부터 전달받은 리퀘스트를 내부망 내 서버로 보내주며 내부망을 외부 시스템과 분리시킴으로써 보안이 강화된다. 클라이언트 측에서는 프록시 서버를 거쳐서 리퀘스트가 전달되었다는 사실을 인지하지 못한다. 

'CS 공부' 카테고리의 다른 글

[Network] HTTP status code  (0) 2022.04.16
[Network] HTTP (HyperText Transfer Protocol)  (0) 2022.04.16
[CS] 프로세스와 스레드  (0) 2022.04.16
[CS] 스레드 안전 (Thread-safe)  (0) 2022.02.27
[Infra] Scale up & Scale out  (0) 2022.02.23