Nguon: Microsoft Learn · .NET 8.0

Bắt đầu với YARP

Nguồn: Get started with YARP

YARP được thiết kế như một thư viện .NET cung cấp chức năng proxy cốt lõi. Bạn có thể tùy chỉnh thư viện bằng cách thêm hoặc thay thế các module. YARP hiện được cung cấp dưới dạng NuGet package và các mẫu code, nhưng một project template (mẫu dự án) và file thực thi dựng sẵn (.exe) đang được lên kế hoạch cho tương lai.

YARP được triển khai trên cơ sở hạ tầng .NET và có thể sử dụng trên Windows, Linux hoặc macOS. Bạn có thể phát triển ứng dụng với .NET SDK và trình soạn thảo yêu thích của mình: Microsoft Visual Studio hoặc Visual Studio Code.

YARP 2.3.0 hỗ trợ .NET 8 trở lên. Bạn có thể tải xuống .NET SDK từ https://dotnet.microsoft.com/download/dotnet/.

Bài viết này mô tả cách tạo một ứng dụng ASP.NET Core cơ bản sử dụng thư viện YARP.

Tạo dự án mới

Bắt đầu bằng cách tạo một ứng dụng ASP.NET Core rỗng từ dòng lệnh:

dotnetcli
dotnet new web -n MyProxy

Hoặc, xây dựng một ứng dụng web ASP.NET Core mới trong Visual Studio 2022 bằng cách chọn Empty cho template dự án.

Để xem phiên bản hoàn chỉnh của dự án được triển khai trong bài viết này, hãy tải xuống Basic YARP Sample trên GitHub.

Thêm tham chiếu package YARP

Thêm tham chiếu package cho Yarp.ReverseProxy phiên bản 2.3.0 trở lên.

dotnetcli
dotnet add package Yarp.ReverseProxy

Để được hướng dẫn về cách thêm package vào ứng dụng .NET, xem các bài viết trong phần Install and manage packages tại Package consumption workflow (NuGet documentation). Xác nhận các phiên bản package chính xác tại NuGet.org.

Thêm YARP middleware

Cập nhật file Program.cs để sử dụng YARP middleware (phần mềm trung gian):

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

Tùy chỉnh cấu hình YARP

Cấu hình cho YARP được định nghĩa trong file appsettings.json. Để biết thêm thông tin, xem YARP configuration files.

Bạn cũng có thể chỉ định cấu hình theo cách lập trình. Để biết thêm thông tin, xem YARP extensibility: Configuration providers.

Để tìm hiểu thêm về các tùy chọn cấu hình có sẵn, xem các bài tham chiếu RouteConfigClusterConfig.

json
{
  "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/"
          }
        }
      }
    }
  }
}

Chạy ứng dụng dự án YARP của bạn

Để chạy dự án YARP mới của bạn: