Sdílet prostřednictvím


Začínáme s YARP

YARP je navržena jako knihovna, která poskytuje základní funkce proxy serveru, které můžete přizpůsobit přidáním nebo nahrazením modulů. YarP je aktuálně k dispozici jako balíček NuGet a ukázky kódu. V budoucnu plánujeme poskytnout šablonu projektu a předem sestavený spustitelný soubor (.exe).

YARP je implementovaný nad infrastrukturou .NET Core a je použitelný v systémech Windows, Linux nebo MacOS. Vývoj je možné provádět pomocí sady SDK a oblíbeného editoru, sady Microsoft Visual Studio nebo editoru Visual Studio Code.

YARP 2.3.0 podporuje .NET 8 nebo novější.

SDK pro .NET si můžete stáhnout z https://dotnet.microsoft.com/download/dotnet/.

Vytvoření nového projektu

Kompletní verzi projektu vytvořeného pomocí následujícího postupu najdete v YARP základní ukázka.

Začněte vytvořením prázdné aplikace ASP.NET Core pomocí příkazového řádku:

dotnet new web -n MyProxy

Alternativně můžete vytvořit novou webovou aplikaci ASP.NET Core v sadě Visual Studio 2022 a zvolit prázdnou šablonu projektu.

Přidání odkazu na balíček

Přidejte odkaz na balíček pro Yarp.ReverseProxyverze 2.3.0 nebo novější.

dotnet add package Yarp.ReverseProxy

Poznámka

Pokyny k přidávání balíčků do aplikací .NET najdete v článcích pod Instalace a správa balíčků v Pracovním postupu spotřeby balíčků (dokumentace NuGet). Zkontrolujte správné verze balíčků v NuGet.org.

Přidání middlewaru YARP

Aktualizujte soubor Program tak, aby používal middleware YARP:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddReverseProxy()
    .LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"));
var app = builder.Build();
app.MapReverseProxy();
app.Run();

Konfigurace

Konfigurace pro YARP je definována v souboru appsettings.json. Další informace naleznete v dokumentaci YARP Konfigurační soubory.

Konfiguraci je možné zadat také prostřednictvím kódu programu. Další informace naleznete v tématu YARP Extensibility Configuration Providers.

Další informace o dostupných možnostech konfigurace najdete v tématu RouteConfig a ClusterConfig.

{
 "Logging": {
   "LogLevel": {
     "Default": "Information",
     "Microsoft": "Warning",
     "Microsoft.Hosting.Lifetime": "Information"
   }
 },
 "AllowedHosts": "*",
 "ReverseProxy": {
   "Routes": {
     "route1" : {
       "ClusterId": "cluster1",
       "Match": {
         "Path": "{**catch-all}"
       }
     }
   },
   "Clusters": {
     "cluster1": {
       "Destinations": {
         "destination1": {
           "Address": "https://example.com/"
         }
       }
     }
   }
 }
}

Spusťte projekt

Při použití rozhraní příkazového řádku .NET použijte dotnet run v adresáři ukázky nebo dotnet run --project <path to .csproj file>.

V sadě Visual Studio spusťte aplikaci kliknutím na tlačítko Spustit .