Construyendo un proxy inverso con Node.js

JavaScriptJavaScriptBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este proyecto, aprenderás a crear un proxy inverso utilizando Node.js. Un proxy inverso es un servidor que se coloca entre un cliente y un servidor backend, redirigiendo las solicitudes del cliente al servidor backend y devolviendo la respuesta al cliente.

👀 Vista previa

Vista previa del servidor proxy inverso

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo crear un servidor HTTP utilizando Node.js
  • Cómo utilizar el Stream pipe para pasar los datos de respuesta de GitHub directamente al cliente
  • Cómo iniciar el servidor proxy inverso y probarlo

🏆 Logros

Después de completar este proyecto, podrás:

  • Comprender el concepto de un proxy inverso y cómo funciona
  • Crear un proxy inverso utilizando Node.js para proxyear solicitudes al sitio web de GitHub
  • Implementar la funcionalidad del proxy inverso utilizando el Stream pipe
  • Iniciar y probar el servidor proxy inverso

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/DOMManipulationGroup(["DOM Manipulation"]) javascript(("JavaScript")) -.-> javascript/NetworkingGroup(["Networking"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) 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{{"Construyendo un proxy inverso con Node.js"}} javascript/dom_manip -.-> lab-445686{{"Construyendo un proxy inverso con Node.js"}} javascript/http_req -.-> lab-445686{{"Construyendo un proxy inverso con Node.js"}} end

Implementar el proxy inverso

Para comenzar, abre el editor. Deberías ver un archivo en el editor: "proxy.js".

En este paso, aprenderás a utilizar el Stream pipe para pasar los datos de respuesta de GitHub directamente al cliente. Sigue los pasos siguientes para completar este paso:

  1. En el archivo proxy.js, localiza el comentario // TODO en la función http.createServer.
  2. Reemplaza el comentario // TODO con el siguiente código:
https.get(uri, function (response) {
  response.pipe(res);
});

Este código utiliza el Stream pipe para pasar los datos de respuesta de GitHub directamente al cliente.

  1. Guarda el archivo proxy.js.

Iniciar el servidor proxy inverso

En este paso, aprenderás a iniciar el servidor proxy inverso y a probarlo.

  1. Abre una terminal y navega hasta el directorio del proyecto.
  2. Ejecuta el siguiente comando para iniciar el servidor proxy inverso:
node proxy.js

Deberías ver la siguiente salida:

Server running at http://localhost:8080/
  1. Abre otra terminal y ejecuta el siguiente comando para probar el proxy inverso:
curl --connect-timeout 2 -m 5 localhost:8080/pricing | grep GitHub

Este comando envía una solicitud al servidor proxy inverso, el cual a su vez recupera el contenido del sitio web de GitHub y lo devuelve al cliente.

  1. Deberías ver la información de precios de GitHub mostrada en la terminal.
Descripción de la imagen

¡Felicidades! Has creado con éxito un proxy inverso utilizando Node.js. Ahora puedes experimentar con el proxy inverso modificando el código y probando diferentes escenarios.

✨ Revisar Solución y Practicar

Resumen

¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.