Post

Proxy (Forward vs Reverse)

프록시 서버의 두 가지 방식 — Forward Proxy와 Reverse Proxy의 동작 원리와 차이

Proxy (Forward vs Reverse)

Proxy

  • 프록스 서버는 클라이언트와 서버 사이에서 중계기로서 대리로 통신을 수행하는 서버이다
  • 프록시 서버는 클라이언트의 요청을 받아서 서버에 전달하고, 서버의 응답을 받아서 클라이언트에게 전달한다
  • 프록시 서버는 크게 방식에 때라 Forward Proxy와 Reverse Proxy로 나뉜다

Forward Proxy

  • 포워드 프록시 서버가 요청을 받고 인터넷에 연결하여 요청을 처리한 후 응답을 클라이언트에게 전달한다
  • 프록시 서버는 Cache 기능을 가지고 있어서, 동일한 요청이 여러 번 발생할 경우 캐시에서 응답을 전달할 수 있다
  • ex> 회사에서 직원들이 인터넷을 사용할 때, 회사 내부에 설치된 프록시 서버를 통해서 인터넷에 연결하는 경우

Reverse Proxy

  • 클라이언트가 인터넷에 연결하여 요청을 보내면, 리버스 프록시 서버가 요청을 받아서 내부 서버에 전달한다. 내부 서버는 요청을 처리한 후 응답을 리버스 프록시 서버에 전달하고, 리버스 프록시 서버는 클라이언트에게 응답을 전달한다. (ex> nginx 서버가 요청을 받고, tomcat 서버에 전달하고, tomcat 서버가 응답을 nginx 서버에 전달하고, nginx 서버가 응답을 클라이언트에게 전달한다)

  • 리버스 프록시 서버는 여러 대의 내부 서버에 요청을 분산시키는데 사용할 수 있다 (로드 밸런싱, 서버 확장성)
  • ex> 서버가 여러 대가 있을 때, 클라이언트가 서버에 직접 연결하는 것이 아니라 리버스 프록시 서버에 연결해서 요청을 보내는 경우

차이

Forward ProxyReverse Proxy
인터넷 연결proxy 서버를 통해 인터넷에 연결클라이언트가 인터넷에 직접 연결
감춰지는 대상클라이언트서버
end point클라이언트가 요청하는 End Point가 실제 서버 도메인클라이언트가 요청하는 End Point가 Reverse Proxy 도메인
서버 ip클라이언트가 직접 서버의 ip를 알아야 한다클라이언트는 Reverse Proxy의 ip만 알면 된다
This post is licensed under CC BY 4.0 by the author.