Exécution de plusieurs applications de nœud (Express) sur le même port
J'ai plusieurs applications de nœuds (construit sur le framework Express).
Maintenant, je les ai placés comme ça-
/var/www/app1
/var/www/app2
/var/www/app3
Maintenant, je veux exécuter ces 3 applications sur le même port (dire 8080). Est-ce possible ?
Une chose à noter est que, chaque application a des routes communes comme celles-ci -
app.get('/', func...);
app.get('/about', func...);
app.post('/foo', func...);
app.post('/bar', func...);
Fondamentalement, je veux le faire comme vous peut faire avec Apache / PHP setup.
Donc avec une pile de lampe quand vous avez -
/var/www/app1
/var/www/app2
/var/www/app3
Vous pouvez facilement y accéder en tant que différentes applications de -
localhost/app1
localhost/app2
localhost/app3
3 réponses
Vous pouvez utiliser app.use()
:
app
.use('/app1', require('./app1/index').app)
.use('/app2', require('./app2/index').app)
.listen(8080);
Vous pouvez les exécuter en tant qu'applications séparées écoutant différents ports, puis avoir un proxy (comme https://github.com/nodejitsu/node-http-proxy / ) Tout servir sur 8080 en fonction de l'URL demandée.
Comme:
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'
}
};
Fonctionne comme un charme pour moi ( http://nerdpress.org/2012/04/20/hosting-multiple-express-node-js-apps-on-port-80/). Je n'étais pas si désireux de les avoir montés en tant que sous-applications, comme suggéré dans les commentaires parce que je voulais qu'ils s'exécutent indépendamment...
Vous pouvez créer une application principale(disons app) parallèle à vos applications, et l'initialiser les applications secondaires (dans votre cas app1, app2, app3) en utilisant app.utilisation(", require('./ app1 / yourApp.js').
Toutes vos applications (app1, app2, app3) doivent créer app et l'exporter en utilisant var app = module.exportations = express(); Vous n'avez pas besoin de créer une instance de serveur ou d'application d'appel.écoutez dans tous les sous-Applications; toutes les sous-applications peuvent être servies via le port d'écoute de l'application principale.