YARP Docsv2.3
Документация/Производителност/Кеширане на изхода

Кеширане на изхода

Обратният прокси сървър може да се използва за кеширане на проксираните отговори и обслужване на заявки, преди те

Въведение

Обратният прокси сървър може да се използва за кеширане на проксираните отговори и обслужване на заявки, преди те да бъдат препратени към дестинациите. Това може да намали натоварването на дестинациите, да добави допълнителен слой защита и да гарантира последователно прилагане на политиките във всички ваши приложения.

Тази функция е налична само при използване на .NET 7 или по-нова версия

Стойности по подразбиране

Не се извършва кеширане на изхода, освен ако това не е разрешено в конфигурацията на маршрута или на приложението.

Конфигурация

Политиките за кеширане на изхода могат да бъдат зададени за всеки маршрут поотделно чрез RouteConfig.OutputCachePolicy и могат да бъдат обвързани от секциите Routes на конфигурационния файл. Както при другите свойства на маршрута, това може да бъде променяно и презареждано без рестартиране на прокси сървъра. Имената на политиките не са чувствителни към главни и малки букви.

Пример:

JSON{
   "ReverseProxy": {
      "Routes": {
         "route1" : {
             "ClusterId": "cluster1",
             "OutputCachePolicy": "customPolicy",
             "Match": {
                "Hosts": [ "localhost" ]
             }
         }
      },
      "Clusters": {
         "cluster1": {
             "Destinations": {
                "cluster1/destination1": {
                   "Address": "https://localhost:10001/"
                }
             }
         }
      }
             }
          }
Output cache policies are an ASP.NET Core concept that the proxy utilizes. The proxy provides
the above configuration to specify a policy per route and the rest is handled by existing
ASP.NET Core output caching middleware.
Output cache policies can be configured in Program.cs as follows:
C#   var builder = WebApplication.CreateBuilder(args);
   builder.Services.AddOutputCache(options =>
   {
          options.AddPolicy("customPolicy", builder =>
   builder.Expire(TimeSpan.FromSeconds(20)));
   });
Then add the output caching middleware:
    C#
   var app = builder.Build();
   app.UseOutputCache();
   app.MapReverseProxy();
See the Output Caching docs for setting up your preferred kind of output caching.
 Note: The author created this article with assistance from AI. Learn more
Адаптирано от Microsoft Learn , лицензирано под CC BY 4.0 .