J'ai plusieurs applications de nœud (construites sur la structure 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 (disons 8080). Est-ce possible ?
Une chose à noter est que, chaque application a des itinéraires communs comme ceux-ci -
app.get('/', func...);
app.get('/about', func...);
app.post('/foo', func...);
app.post('/bar', func...);
En gros, je veux le faire comme vous pouvez le faire avec la configuration Apache/PHP.
Donc, avec une pile de lampe lorsque vous avez -
/var/www/app1
/var/www/app2
/var/www/app3
Vous pouvez facilement y accéder sous différentes applications à partir de -
localhost/app1
localhost/app2
localhost/app3
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 distinctes écoutant différents ports, puis disposer d'un proxy (tel que https://github.com/nodejitsu/node-http-proxy/ ), desservant tout le 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'aimais pas tellement qu'ils soient montés en tant que sous-applications, comme suggéré dans les commentaires, car je voulais qu'ils fonctionnent de manière indépendante ...
Vous pouvez créer une application principale (par exemple, une application principale) parallèle à vos applications et l'initialiser (dans votre cas, app1, app2, app3) en utilisant app.use ('', require ('./ app1/yourApp.js ').
Toutes vos applications (app1, app2, app3) doivent créer une application et l'exporter à l'aide de Var app = module.exports = express (); Il n'est pas nécessaire de créer une instance de serveur ou d'appeler app.listen dans tous les cas. les sous-applications; toutes les sous-applications peuvent être desservies via le port d'écoute de l'application principale.