YARP Docsv2.3
Документация/Първи стъпки/Преглед на YARP

Преглед на YARP

YARP (Yet Another Reverse Proxy) е изключително персонализируема библиотека за обратно прокси за .NET — създадена да бъде надеждна, гъвкава, мащабируема, сигурна и лесна за работа пред услугите, които вече имате.

Въведение

YARP помага на разработчиците да създават мощни и ефективни решения за обратно прокси, съобразени с конкретните им нужди. То застава между клиентските устройства и бекенд сървърите, препраща заявките на клиентите към подходящата дестинация и връща отговора — същата роля, която играят nginx или Envoy, но като библиотека, която хоствате в собствения си процес на ASP.NET Core.

Какво прави обратното прокси

Обратното прокси предлага няколко предимства спрямо обикновен бекенд:

  • Маршрутизиране — насочва заявките към различни бекенд сървъри въз основа на предварително зададени правила, например URL шаблони или заглавки на заявки. /images, /api и /db могат да бъдат насочени всеки към различен сървър.
  • Балансиране на натоварването — разпределя входящия трафик между няколко бекенд сървъра, за да предотврати претоварването на който и да е от тях.
  • Мащабируемост — бекенд сървъри могат да бъдат добавяни или премахвани, без това да засяга клиента, тъй като трафикът се разпределя от проксито.
  • Терминиране на TLS — освобождава бекенд сървърите от криптирането и декриптирането, намалявайки тяхното натоварване.
  • Сигурност — вътрешните крайни точки на услугите остават скрити от външен достъп, което намалява повърхността за атака.

Как обратното прокси обработва HTTP

Входящите връзки се терминират на проксито; за изходящите заявки към дестинациите се използват нови, обединени в пул връзки. Въз основа на конфигурираните правила за маршрутизиране YARP определя кой клъстер трябва да обработи заявката, препраща я — трансформирайки пътя и заглавките, когато е необходимо — и препредава отговора на бекенда обратно към клиента.

Бърз пример

Регистрирайте проксито и заредете маршрутите и клъстерите директно от конфигурацията.

C#using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddReverseProxy()
    .LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"));

var app = builder.Build();
app.MapReverseProxy();
app.Run();
JSON{
  "ReverseProxy": {
    "Routes": {
      "route1": {
        "ClusterId": "cluster1",
        "Match": { "Path": "{**catch-all}" }
      }
    },
    "Clusters": {
      "cluster1": {
        "Destinations": {
          "cluster1/destination1": { "Address": "https://example.com/" }
        }
      }
    }
  }
}
Бележка

Конфигурацията се презарежда автоматично при промяна на източника — не се изисква рестартиране. Вижте Филтри за конфигурация, за да променяте конфигурацията по време на последователността на зареждане.

Защо да изберете YARP пред други прокси

YARP е изграден върху ASP.NET Core, така че се интегрира директно с екосистемата на .NET и предоставя богат набор от точки за разширяване — маршрутизирането, балансирането на натоварването и трансформациите могат да бъдат персонализирани на познат C#, вместо на специфичен за проксито конфигурационен език. Той се поддържа активно от Microsoft, а както YARP, така и документацията му са с отворен код.

Адаптирано от Microsoft Learn , лицензирано под CC BY 4.0 .