Reverse Proxy 와 Load Balencer 란 무엇입니까?

리버스 프록시 서버 및로드 밸런서는 클라이언트 서버 컴퓨팅 아키텍처의 구성 요소입니다. 둘 다 클라이언트와 서버 간의 통신에서 중개자 역할을하여 효율성을 향상시키는 기능을 수행합니다. 전용 전용 장치로 구현할 수 있지만, 현대 웹 아키텍처에서 점점 더 상용 하드웨어에서 실행되는 소프트웨어 응용 프로그램입니다.

기본 정의는 간단합니다.

  • 리버스 프록시는 클라이언트의 요청을 받아 이를 수행 할 수있는 서버로 전달한 다음, 서버의 응답을 클라이언트에 반환합니다.
  • 로드 밸런서는 들어오는 클라이언트 요청을 서버 그룹간에 분배하며, 각 경우 선택한 서버에서 적절한 클라이언트로 응답을 반환합니다.

그러나 그들은 꽤 비슷하게 들립니다. 두 유형의 응용 프로그램은 클라이언트와 서버 사이에 있으며 전자의 요청을 수락하고 후자의 응답을 제공합니다. 리버스 프록시와로드 밸런서가 무엇인지 혼동하는 것은 놀라운 일이 아닙니다. 그들을 괴롭히는 데 도움이되도록 일반적으로 웹 사이트에 배포되는시기와 이유를 살펴 보겠습니다.

로드 밸런싱(Load Balancing)

로드 밸런서는 단일 서버가 효율적으로 처리하기에 요청량이 너무 많기 때문에 사이트에 여러 서버가 필요한 경우 가장 일반적으로 배포됩니다. 여러 서버를 배포하면 단일 장애 지점이 없어 웹 사이트의 안정성이 향상됩니다. 가장 일반적으로 서버는 모두 동일한 콘텐츠를 호스팅하며, 로드 밸런서의 작업은 각 서버의 용량을 최대한 활용하고 모든 서버의 과부하를 방지하며 클라이언트에 가장 빠른 응답을 제공하는 방식으로 작업 부하를 분산시키는 것입니다.

로드 밸런서는 클라이언트가 보는 오류 응답 수를 줄여 사용자 경험을 향상시킬 수도 있습니다. 서버가 중단되는 시기를 감지하고 그룹에서 다른 서버로 요청을 전환하여이를 수행합니다. 가장 간단한 구현에서로드 밸런서는 일반 요청에 대한 오류 응답을 가로 채서 서버 상태를 감지합니다. 응용 프로그램 상태 확인은 로드 밸런서가 별도의 상태 확인 요청을 전송하고 서버 상태를 고려하기 위해 지정된 유형의 응답이 필요한 보다 유연하고 정교한 방법입니다.

일부로드 밸런서에서 제공하는 또 다른 유용한 기능은 세션 지속성 입니다. 즉, 특정 클라이언트의 모든 요청을 동일한 서버로 보냅니다. 이론적으로 HTTP 는 상태 비저장 (stateless)이지만 많은 응용 프로그램은 전자 상거래 사이트의 쇼핑 바구니와 같은 핵심 기능을 제공하기 위해 상태 정보를 저장해야합니다. 로드 밸런서가 사용자 세션의 요청을 모든 요청을 초기 요청에 응답 한 서버로 보내지 않고 다른 서버로 분배하는 경우 이러한 애플리케이션은로드 밸런싱 된 환경에서 성능이 저하되거나 심지어 실패 할 수도 있습니다.

리버스 프록시(Reverse Proxy)

로드 밸런서 배포는 여러 서버가있는 경우에만 의미가 있지만 웹 서버나 응용 프로그램 서버가 하나만 있어도 리버스 프록시를 배포하는 것이 좋습니다. 리버스 프록시를 웹 사이트의 "공개 얼굴"로 생각할 수 있습니다. 이 주소는 웹 사이트에 광고 된 주소이며, 웹 사이트에서 호스팅되는 콘텐츠에 대한 웹 브라우저 및 모바일 앱의 요청을 수락하기 위해 사이트 네트워크의 가장자리에 있습니다. 이점은 두 가지입니다.

  • 보안 강화 : 백엔드 서버에 대한 정보가 내부 네트워크 외부에 표시되지 않으므로 악의적인 클라이언트가 직접 액세스하여 취약점을 악용 할 수 없습니다. 많은 리버스 프록시 서버에는 특정 클라이언트 IP 주소의 트래픽을 거부하거나 (블랙리스트) 각 클라이언트에서 허용되는 연결 수를 제한하여 분산 서비스 거부 (DDoS) 공격으로부터 백엔드 서버를 보호하는 기능이 포함되어 있습니다.
  • 확장 성 및 유연성 향상 : 클라이언트는 리버스 프록시의 IP 주소 만 볼 수 있으므로 백엔드 인프라의 구성을 자유롭게 변경할 수 있습니다. 이는 특히 트래픽 양의 변동에 맞게 서버 수를 늘리거나 줄일 수있는로드 균형 조정 환경에서 유용합니다.

리버스 프록시를 배포하는 또 다른 이유는 웹 가속을 위한 것입니다. 응답을 생성하고 클라이언트에 반환하는 데 걸리는 시간이 줄어 듭니다. 웹 가속 기술에는 다음이 포함됩니다.

  • 압축 : 서버 응답을 클라이언트로 반환하기 전에 압축하면 (예 : gzip ) 필요한 대역폭이 줄어들어 네트워크를 통한 전송 속도가 빨라집니다.
  • SSL 종료 : 클라이언트와 서버 간의 트래픽을 암호화하면 인터넷과 같은 공용 네트워크를 통과 할 때 이를 보호합니다. 그러나 해독 및 암호화는 계산 비용이 많이 들 수 있습니다. 수신 요청을 해독하고 서버 응답을 암호화함으로써 리버스 프록시는 백엔드 서버에서 리소스를 확보하여 콘텐츠를 제공하는 주된 목적에 전념 할 수 있습니다.
  • 캐싱 : 백엔드 서버의 응답을 클라이언트에 반환하기 전에 리버스 프록시는 해당 서버의 사본을 로컬에 저장합니다. 클라이언트 (또는 클라이언트)가 동일한 요청을하면 리버스 프록시는 요청을 백엔드 서버로 전달하는 대신 캐시에서 응답 자체를 제공 할 수 있습니다. 이렇게하면 클라이언트에 대한 응답 시간이 줄어들고 백엔드 서버의로드가 줄어 듭니다.
반응형

'개발 > 리눅스' 카테고리의 다른 글

LINUX | manjaro 설치후 할일  (0) 2020.05.29
LINUX | swap 용량 늘리기  (0) 2020.04.29
nginx | site-enabled, site-available.md  (0) 2020.02.11
freenas | ssh key 로그인  (0) 2020.01.06
Fedora 30 | uim 입력기 변경  (0) 2019.08.20

+ Recent posts