javascript - tutorial - Ejecutar mĂșltiples aplicaciones Node(Express) en el mismo puerto
node js vs php (3)
Podrías ejecutarlos como aplicaciones separadas escuchando diferentes puertos y luego tener un proxy (como https://github.com/nodejitsu/node-http-proxy/ ) sirviendo todo en 8080 dependiendo de la URL solicitada.
me gusta:
var options = {
router: {
''foo.com/baz'': ''127.0.0.1:8001'',
''foo.com/buz'': ''127.0.0.1:8002'',
''bar.com/buz'': ''127.0.0.1:8003''
}
};
Funciona como un encanto para mí ( http://nerdpress.org/2012/04/20/hosting-multiple-express-node-js-apps-on-port-80/ ). No estaba tan interesado en montarlos como sub-aplicaciones, como se sugirió en los comentarios porque quería que se ejecutaran de forma independiente ...
Tengo varias aplicaciones Node (compilación en el marco Express).
Ahora los he puesto así -
/var/www/app1
-
/var/www/app2
-
/var/www/app3
Ahora quiero ejecutar estas 3 aplicaciones en el mismo puerto (digamos 8080). Es eso posible ?
Una cosa a tener en cuenta es que cada aplicación tiene rutas comunes como estas:
-
app.get(''/'', func...);
-
app.get(''/about'', func...);
-
app.post(''/foo'', func...);
-
app.post(''/bar'', func...);
Básicamente, quiero hacerlo como se puede hacer con la configuración de Apache / PHP.
Entonces con una pila LAMP cuando tienes -
-
/var/www/app1
-
/var/www/app2
-
/var/www/app3
Puede acceder fácilmente a ellos desde diferentes aplicaciones desde:
-
localhost/app1
-
localhost/app2
-
localhost/app3
Puede crear una aplicación principal (por ejemplo, aplicación) paralela a sus aplicaciones y hacer que inicialice las aplicaciones secundarias (en su caso, aplicación1, aplicación2, aplicación3) usando app.use ('''', require (''./ app1 / yourApp.js '').
Todas sus aplicaciones (app1, app2, app3) necesitan crear aplicaciones y exportarlas usando var app = module.exports = express (); No necesita crear una instancia de servidor o llamar a app.listen en todas las subapps; todas las sub-aplicaciones pueden ser servidas a través del puerto de escucha de la aplicación principal.
Puede usar app.use()
:
app
.use(''/app1'', require(''./app1/index'').app)
.use(''/app2'', require(''./app2/index'').app)
.listen(8080);