YARP Docsv2.3
Docs/Performances/Mise en cache des sorties

Mise en cache des sorties

Le proxy inverse peut être utilisé pour mettre en cache les réponses transférées et servir les requêtes avant qu'elles ne soient

Introduction

Le proxy inverse peut être utilisé pour mettre en cache les réponses transférées et servir les requêtes avant qu'elles ne soient transférées vers les serveurs de destination. Cela permet de réduire la charge sur les serveurs de destination, d'ajouter une couche de protection et de garantir une application cohérente des stratégies dans l'ensemble de vos applications.

Cette fonctionnalité n'est disponible qu'à partir de .NET 7

Comportement par défaut

Aucune mise en cache des sorties n'est effectuée, sauf si elle est activée dans la configuration de la route ou de l'application.

Configuration

Les stratégies de mise en cache des sorties peuvent être spécifiées par route via RouteConfig.OutputCachePolicy et peuvent être liées à partir des sections Routes du fichier de configuration. Comme pour les autres propriétés de route, cette configuration peut être modifiée et rechargée sans redémarrer le proxy. Les noms de stratégie ne respectent pas la casse.

Exemple :

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
Adapté de Microsoft Learn , sous licence CC BY 4.0 .