Création d'un proxy inverse avec Node.js

JavaScriptJavaScriptBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, vous allez apprendre à créer un proxy inverse à l'aide de Node.js. Un proxy inverse est un serveur qui se situe entre un client et un serveur backend, redirigeant les requêtes du client vers le serveur backend et renvoyant la réponse au client.

👀 Aperçu

Aperçu du serveur proxy inverse

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment créer un serveur HTTP à l'aide de Node.js
  • Comment utiliser le Stream pipe pour passer directement les données de réponse de GitHub au client
  • Comment démarrer le serveur proxy inverse et le tester

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Comprendre le concept d'un proxy inverse et comment il fonctionne
  • Créer un proxy inverse à l'aide de Node.js pour proxyer les requêtes vers le site web GitHub
  • Implémenter la fonctionnalité de proxy inverse à l'aide du Stream pipe
  • Démarrer et tester le serveur proxy inverse

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript(("JavaScript")) -.-> javascript/DOMManipulationGroup(["DOM Manipulation"]) javascript(("JavaScript")) -.-> javascript/NetworkingGroup(["Networking"]) javascript/AdvancedConceptsGroup -.-> javascript/async_prog("Asynchronous Programming") javascript/DOMManipulationGroup -.-> javascript/dom_manip("DOM Manipulation") javascript/NetworkingGroup -.-> javascript/http_req("HTTP Requests") subgraph Lab Skills javascript/async_prog -.-> lab-445686{{"Création d'un proxy inverse avec Node.js"}} javascript/dom_manip -.-> lab-445686{{"Création d'un proxy inverse avec Node.js"}} javascript/http_req -.-> lab-445686{{"Création d'un proxy inverse avec Node.js"}} end

Implémentez le proxy inverse

Pour commencer, ouvrez l'éditeur. Vous devriez voir un fichier dans l'éditeur - "proxy.js".

Dans cette étape, vous allez apprendre à utiliser le Stream pipe pour passer directement les données de réponse de GitHub au client. Suivez les étapes ci-dessous pour terminer cette étape :

  1. Dans le fichier proxy.js, localisez le commentaire // TODO dans la fonction http.createServer.
  2. Remplacez le commentaire // TODO par le code suivant :
https.get(uri, function (response) {
  response.pipe(res);
});

Ce code utilise le Stream pipe pour passer directement les données de réponse de GitHub au client.

  1. Enregistrez le fichier proxy.js.

Démarrez le serveur proxy inverse

Dans cette étape, vous allez apprendre à démarrer le serveur proxy inverse et à le tester.

  1. Ouvrez un terminal et accédez au répertoire du projet.
  2. Exécutez la commande suivante pour démarrer le serveur proxy inverse :
node proxy.js

Vous devriez voir la sortie suivante :

Server running at http://localhost:8080/
  1. Ouvrez un autre terminal et exécutez la commande suivante pour tester le proxy inverse :
curl --connect-timeout 2 -m 5 localhost:8080/pricing | grep GitHub

Cette commande envoie une requête au serveur proxy inverse, qui récupère à son tour le contenu du site web GitHub et le renvoie au client.

  1. Vous devriez voir les informations de tarification de GitHub affichées dans le terminal.
Description de l'image

Félicitations ! Vous avez réussi à créer un proxy inverse à l'aide de Node.js. Vous pouvez désormais expérimenter le proxy inverse en modifiant le code et en testant différents scénarios.

✨ Vérifier la solution et pratiquer

Sommaire

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires dans LabEx pour améliorer vos compétences.