Passer au contenu du pied de page
Iron Academy Logo
Apprendre le C#
Apprendre le C#

Autres catégories

Intro To YARP In C# - Comment créer un mandataire inverse (Reverse Proxy)

Tim Corey
52m 31s

Lorsqu'il s'agit de gérer efficacement le trafic web dans un environnement .NET Core, un proxy inverse devient un outil indispensable. YARP, abréviation de Yet Another Reverse Proxy, est le projet de proxy inverse de Microsoft, très flexible et hautement personnalisable, conçu spécifiquement pour l'écosystème .NET. Dans cet article, nous allons plonger profondément dans la prise en main de YARP en suivant le tutoriel complet de Tim C# intitulé "Intro To YARP In C# - How To Create a Reverse Proxy", dans lequel il démontre la configuration et l'utilisation de YARP dans une application web .NET Core.

Commençons par une présentation de YARP et de la manière dont vous pouvez tirer parti de ce cadre proxy dans vos propres projets.

Qu'est-ce qu'un Reverse Proxy?

À 1:07, Tim explique qu'un proxy inverse s'interpose entre le client (les utilisateurs) et les serveurs dorsaux, gérant les requêtes entrantes et les acheminant efficacement vers la destination appropriée.

Tim, à 1:45, explique pourquoi un proxy est important : non seulement pour l'équilibrage de la charge, mais aussi pour simplifier les en-têtes des requêtes, sécuriser les connexions avec HTTPS et s'assurer que les services dorsaux sont isolés de l'accès direct. En utilisant un proxy inverse, vous pouvez faire évoluer vos applications .NET Core facilement sans exposer votre structure interne.

Introduction à YARP

À 5:11, Tim présente YARP - Yet Another Reverse Proxy. Tim explique que Microsoft a pris conscience de la nécessité d'un cadre de proxy mieux adapté aux besoins spécifiques de leur large gamme d'applications .NET, ce qui a conduit à la création de YARP. Il s'agit d'une bibliothèque qui fournit les fonctionnalités de base du proxy de manière modulaire, robuste et extensible.

Getting Started With Yarp In Csharp 1 related to Introduction à YARP

Cette bibliothèque fait l'objet d'un développement actif, ce qui permet d'inclure les dernières fonctionnalités et de prendre en charge les technologies les plus récentes telles que Linux, Windows et les environnements en nuage.

En outre, Tim met l'accent sur la documentation complète et entretenue disponible pour YARP, qui facilite grandement la prise en main pour les nouveaux développeurs.

Mise en place d'un projet YARP de base

À 6:14, Tim démarre un nouveau projet dans Visual Studio à l'aide du kit de développement net. Il crée un projet d'API Web ASP.NET Core de base nommé Pessimistic API.

Getting Started With Yarp In Csharp 2 related to Mise en place d'un projet YARP de base

Tim à 7:02 modifie le projet pour créer une API pessimiste qui simule un service de météo froide. Cette simple application Net Core est le serveur dorsal vers lequel YARP se tournera par la suite.

Tim suggère à 8:44 de vérifier le projet avant d'aller de l'avant, en s'assurant que le service de l'exemple répond correctement aux requêtes à /weatherforecast.

Création de la passerelle YARP

À 9:04, Tim crée un projet ASP.NET Core vide appelé YarpGateway. Ce projet fait office de proxy inverse.

Tim explique comment installer le package nécessaire en allant sur Manage NuGet Packages et en recherchant install package YARP (à 10:24). Cette traduction fait appel à YARP Reverse Proxy, la bibliothèque officielle qui fournit les fonctionnalités de base du proxy.

Configuration de YARP

À 12:02, Tim montre comment câbler la configuration YARP à l'intérieur de Program.cs en utilisant :

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

Cette configuration charge les fichiers de configuration qui définissent les routes et les clusters, éléments fondamentaux lors de l'utilisation de YARP pour le routage des requêtes.

Les routes correspondent au chemin entrant, et les clusters définissent les services dorsaux à transférer. Cette configuration modulaire permet d'ajouter des fonctionnalités avancées telles que la limitation du débit, le remplacement de modules et le réglage fin de la gestion des chemins.

Tim souligne que cette conception flexible est la raison pour laquelle YARP est un proxy inverse hautement personnalisable, adapté aux projets du monde réel.

Tester la configuration de base du proxy

À 20:02, Tim montre l'exécution conjointe du backend Pessimistic API et de la YarpGateway.

Lorsque vous naviguez vers l'URL /weatherforecast de la passerelle, YARP achemine la requête entrante vers le serveur dorsal, récupère la réponse et la diffuse - sans exposer l'URL interne. Ceci démontre la fonctionnalité du proxy et le routage des requêtes en action.

Expansion avec un deuxième backend

À 21:17, Tim ajoute un nouveau projet appelé Optimistic API qui ne renvoie que des températures chaudes.

Il configure YARP avec plusieurs destinations au sein d'un même cluster. Cela permet d'équilibrer la charge, c'est-à-dire de répartir les demandes entrantes de manière aléatoire entre deux serveurs dorsaux.

Plus tard, à 26:26, Tim explique que vous pouvez personnaliser davantage la stratégie d'équilibrage de la charge, y compris des options telles que le round robin ou la logique personnalisée basée sur les attributs de la demande.

Mise à jour d'un site web statique avec YARP

À 28:12, Tim décrit un exemple concret : la mise à niveau de son propre site web (iamtimcorey.com).

Il crée une application web WebsiteUpgrade net core qui proxie tout le trafic vers le site d'origine à l'aide d'une route de rattrapage.

Getting Started With Yarp In Csharp 3 related to Mise à jour d'un site web statique avec YARP

Cette stratégie permet des mises à jour progressives : Tim peut reconstruire et moderniser les pages à l'aide de Razor tout en continuant à prendre en charge le contenu plus ancien servi par l'ancien système. Les demandes entrantes sont automatiquement acheminées soit vers le site original, soit vers le nouveau contenu, en fonction du chemin d'accès.

Ajouter de nouvelles fonctionnalités avec Razor Pages

À 34:30, Tim ajoute Razor Pages au projet de mise à niveau. Il montre comment ajouter une page simple (/more) qui est servie directement par la nouvelle application alors que tout le reste est proxié.

Grâce à la flexibilité de YARP, de nouveaux modules et fonctionnalités peuvent être ajoutés sans perturber les services backend existants.

Mise en œuvre du routage avancé et des transformations de chemin

À 39:03, Tim construit un itinéraire /random qui réécrit le chemin et redirige les utilisateurs de manière aléatoire entre trois pages de cours différentes.

Il utilise la fonction de transformation de YARP pour modifier les en-têtes de requête et les chemins d'accès lors de la proxification, en montrant comment les développeurs peuvent affiner le comportement pour des besoins spécifiques.

Tim rencontre une faute de frappe vers 44:03 mais la corrige, en insistant sur l'attention à porter aux fichiers de configuration.

Mise en place de l'équilibrage de charge Round Robin

À 45:10, Tim passe d'un routage aléatoire à un routage à la volée. Ce simple changement de configuration améliore la prévisibilité de la distribution du trafic entre plusieurs pages.

Getting Started With Yarp In Csharp 4 related to Mise en place de l'équilibrage de charge Round Robin

Elle met en évidence l'une des principales caractéristiques de YARP : la facilité de personnaliser les comportements de manière dynamique par le biais de la configuration seule, sans modification profonde du code.

Conclusion : Pourquoi choisir YARP ?

À 47:03, Tim conclut en résumant les raisons pour lesquelles YARP est un outil essentiel pour les applications net core modernes :

  • La traduction est conçue comme une bibliothèque pour faciliter l'intégration.

  • Elle fournit les fonctionnalités de base du proxy dont les développeurs ont besoin.

  • Le logiciel est en cours de développement par Microsoft.

  • Le logiciel est compatible avec Linux, Windows et HTTPS.

  • Le logiciel dispose d'une vaste documentation et d'une documentation complète maintenue à jour.

  • Il permet d'acheminer les demandes de manière flexible vers plusieurs serveurs dorsaux.

  • Elle permet une personnalisation aisée pour répondre à des besoins spécifiques.

  • Il s'agit d'une solution de niveau production, évolutive et adaptée aux performances.

Tim encourage les spectateurs à explorer encore plus de fonctionnalités, comme la limitation des taux, le remplacement des modules et des configurations de passerelles API plus approfondies, en suivant la documentation officielle ou en suggérant un cours complet sur YARP.

Conclusion

En suivant la vidéo complète de Tim Corey sur la configuration d'un proxy inverse YARP, n'importe quel développeur peut rapidement se familiariser avec un autre proxy inverse. Que vous gériez un équilibrage de charge complexe, que vous remplaciez des modules ou que vous mettiez votre site à niveau de manière incrémentale, YARP Yet Another Reverse Proxy offre une solution solide et flexible pour le monde du net core. Consultez sa Chaîne YouTube pour d'autres vidéos intéressantes.

Hero Worlddot related to Intro To YARP In C# - Comment créer un mandataire inverse (Reverse Proxy)
Hero Affiliate related to Intro To YARP In C# - Comment créer un mandataire inverse (Reverse Proxy)

Gagnez plus en partageant ce que vous aimez

Vous créez du contenu pour les développeurs travaillant avec .NET, C#, Java, Python ou Node.js ? Transformez votre expertise en revenu supplémentaire !

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi