다음을 통해 공유


YARP 개요

YARP 소개

YARP(Yet Another Reverse Proxy)는 .NET용으로 매우 사용자 지정 가능한 역방향 프록시 라이브러리입니다. 강력하고 유연하며 확장 가능하며 안전하며 사용하기 쉬운 프록시 프레임워크를 제공하도록 설계되었습니다. YARP는 개발자가 특정 요구 사항에 맞게 조정된 강력하고 효율적인 역방향 프록시 솔루션을 만드는 데 도움이 됩니다.

역방향 프록시가 수행하는 작업

역방향 프록시는 클라이언트 디바이스와 백 엔드 서버 사이에 있는 서버입니다. 클라이언트 요청을 적절한 백 엔드 서버로 전달한 다음 클라이언트에 서버의 응답을 반환합니다. 역방향 프록시는 다음과 같은 몇 가지 이점을 제공합니다.

  • 라우팅: URL 패턴 또는 요청 헤더와 같은 미리 정의된 규칙에 따라 요청을 다른 백 엔드 서버로 보냅니다. 예를 들어 /images 요청은 이미지 서버로, /api 요청은 api 서버로, /db 요청은 데이터베이스 서버로 라우팅될 수 있습니다.
  • 부하 분산: 들어오는 트래픽을 여러 백 엔드 서버에 분산하여 특정 서버의 오버로드를 방지합니다. 배포는 성능과 안정성을 향상합니다.
  • 확장성: 여러 서버에 트래픽을 분산하면 역방향 프록시를 사용하면 앱 크기를 조정하여 더 많은 사용자와 더 많은 부하를 처리할 수 있습니다. 백 엔드 서버는 클라이언트에 영향을 주지 않고 확장(추가 또는 제거)됩니다.
  • SSL/TLS 종료: 백 엔드 서버에서 TLS 암호화 및 암호 해독 프로세스를 오프로드하여 워크로드를 줄입니다.
  • 연결 추상화, URL 공간 분리 및 제어: 외부 클라이언트의 인바운드 요청 및 백 엔드의 아웃바운드 응답은 독립적입니다. 이러한 독립성으로 다음을 수행할 수 있습니다.
    • HTTP 버전, 즉, HTTP/1.1, HTTP/2, HTTP/3. 프록시는 HTTP 버전을 업그레이드하거나 다운그레이드할 수 있습니다.
    • 연결 수명- 짧은 클라이언트 연결을 유지하면서 백 엔드에 수명이 긴 연결을 사용할 수 있습니다.
    • URL 공간 제어: 백 엔드로 전달하기 전에 들어오는 URL을 변환할 수 있습니다. 이렇게 하면 외부 URL이 내부 서비스에 매핑되는 방식에서 추상화됩니다. 내부 서비스 엔드포인트는 외부 URL에 영향을 주지 않고 변경할 수 있습니다.
  • 보안: 내부 서비스 엔드포인트는 외부 노출로부터 숨겨 DDoS 공격과 같은 일부 유형의 사이버 공격으로부터 보호할 수 있습니다.
  • 캐싱: 자주 요청되는 리소스를 캐시하여 백 엔드 서버의 부하를 줄이고 응답 시간을 개선할 수 있습니다.
  • 버전 관리: 다른 URL 매핑을 사용하여 다양한 버전의 API를 지원합니다.
  • 간소화된 유지 관리: 역방향 프록시는 SSL/TLS 종료 및 기타 작업을 처리하여 백 엔드 서버의 구성 및 유지 관리를 간소화할 수 있습니다. 예를 들어 SSL 인증서 및 보안 정책은 각 개별 서버가 아닌 역방향 프록시 수준에서 관리할 수 있습니다.

역방향 프록시가 HTTP를 처리하는 방법

역방향 프록시는 다음과 같은 방식으로 HTTP 요청 및 응답을 처리합니다.

  • 요청 수신: 역방향 프록시는 클라이언트에서 들어오는 HTTP 요청에 대해 지정된 포트 및 엔드포인트에서 수신 대기합니다.
  • 연결 종료: 인바운드 HTTP 연결은 프록시에서 종료되고 대상에 대한 아웃바운드 요청에 새 연결이 사용됩니다.
  • 라우팅 요청: 미리 정의된 라우팅 규칙 및 구성에 따라 역방향 프록시는 요청을 처리해야 하는 백 엔드 서버 또는 서버 클러스터를 결정합니다.
  • 요청 전달: 역방향 프록시는 클라이언트 요청을 적절한 백 엔드 서버로 전달하여 필요에 따라 경로와 헤더를 변환합니다.
  • 연결 풀링: 아웃바운드 연결은 연결 오버헤드를 줄이고 HTTP/2 및 HTTP/3에서 HTTP 1.1 재사용 및 병렬 요청을 최대한 활용하기 위해 풀링됩니다.
  • 응답 처리: 백 엔드 서버는 요청을 처리하고 응답을 역방향 프록시로 다시 보냅니다.
  • 응답 반환: 역방향 프록시는 백 엔드 서버에서 응답을 수신하고 클라이언트로 다시 전달하여 필요한 응답 변환을 수행합니다.

이 프로세스는 클라이언트가 백 엔드 서버와 직접 상호 작용하지 않고 역방향 프록시와 상호 작용하여 부하 분산, 보안, 버전 관리 등의 이점을 제공합니다.

다른 프록시보다 YARP를 선택하는 이유

YARP는 개발자에게 매력적인 선택이 될 수 있는 몇 가지 고유한 이점을 제공합니다.

  • 사용자 지정: YARP는 고도로 사용자 지정할 수 있으므로 개발자는 최소한의 노력으로 프록시를 특정 요구 사항에 맞게 조정할 수 있습니다.
  • .NET과의 통합: ASP.NET Core를 기반으로 하는 YARP는 .NET 에코시스템과 원활하게 통합되어 .NET 개발자에게 이상적인 선택입니다.
  • 확장성: YARP는 개발자가 익숙한 C# 코드를 사용하여 필요에 따라 사용자 지정 논리 및 기능을 추가할 수 있도록 다양한 확장성 지점 집합을 제공합니다.
  • 확장성: 직접 전달 확장성 옵션을 사용하면 YARP를 확장하여 대부분의 역방향 프록시에서 실행 가능하지 않은 도메인 이름 및 백 엔드 크기 조정을 지원할 수 있습니다.
  • 활성 개발: YARP는 Microsoft에서 적극적으로 유지 관리 및 개발하여 최신 기술과 모범 사례를 따라가고 있습니다.
  • 포괄적인 유지 관리 설명서: YARP에는 광범위한 설명서와 예제가 포함되어 있어 고급 기능을 쉽게 시작하고 구현할 수 있습니다.
  • 오픈 소스. YARP 및 YARP 설명서는 오픈 소스입니다. 기여, 리뷰 및 피드백을 환영합니다.