Estoy tratando de implementar una capa node.js entre dos servidores que ayudará a redirigir al servidor respectivo en un cambio de ruta/url, siempre que ambos servidores estén dentro de una carpeta.
Lo que quería lograr:
Si presiono localhost: 8000/app1 -> server1 debería llamarse
de manera similar, se debe llamar a localhost:8000/app2 --> server2
Hasta ahora he probado:
const path = require("path"); const express = require("express"); const router = express.Router(); const PORT = 8000; const server1 = require('./server1') const server2 = require('./server2') app.get('/app1', function(req, res){ res.send(server1); }); app.get('/app2', function(req, res){ res.send(server2); }); app.listen(PORT, function(err){ if (err) console.log(err); console.log("Server listening on PORT", PORT);También traté de entender express vhost en este escenario, pero no tuve éxito.
Me encantaría saber si esto es posible.
Tal vez Express proporcione este tipo de funcionalidad, pero lo más probable es que tenga que iniciar un servidor web como NGINX o Apache2. En su configuración, puede decir que "http://localhost:8000/app1" debe asignarse al servidor 1 y "http://localhost:8000/app2" debe asignarse al servidor 2. Ejemplo de NGINX:
Suponga que el servidor 1 se ejecuta en el puerto 3001 y el servidor 2 en el 3002.
location /app1 { proxy_pass http://localhost:3001; } location /app2 { proxy_pass http://localhost:3002; }Aquí está la guía: https://www.nginx.com/blog/deploying-nginx-plus-as-an-api-gateway-part-1/