Bonjour,
J'ai à peu près configuré un vps sur OVH et je souhaite installer node.js pour faire tourner un serveur http. Dans un premier temps je n'ai besoin que de node.js, et je souhaite installer le CMS ghost, mais à terme, je serais intéressé pour faire tourner node et Apache en même temps.

J'ai passé la journée à lire des tutos, mais globalement la solution est toujours la même :
-installer un reverse proxy avec Nginx pour rediriger les requêtes http du port 80 vers le port de node.js
-la même chose avec Apache (avec mod_proxy)

Etrangement je n'ai trouvé que deux solutions différentes :
-faire tourner node sur le port 80 :)
-faire tourner nodejs sur le port 80 avec un reverse proxy configuré en node.js pour rediriger vers Apache qui tourne sur le port 8080
https://wathmal.me/blog/2016/06/run-apache-with-node-js-reverse-proxy/

-utiliser deux adresses IP dont une réservée pour Node (impossible pour moi à moins d'acheter une IP)
https://gist.github.com/stagas/754303

Mes questions :
1) Pourquoi le reverse proxy est toujours conseillé pour lancer un serveur node en mode production ?
Dans le cas d'un serveur http node qui écoute sur le port 80, quels sont les désavantages ? Est-il possible dans ce cas de faire par exemple une redirection 301 de www vers le site ? Est-il difficile de configurer certaines choses habituelles ?
2) Est-il plus intéressant de choisir Apache ou Nginx pour le reverse proxy, et y a t-il une perte de performances ?
3) La solution des 2 ip est-elle difficile à mettre en place et réellement intéressante ?

Merci !

3 réponses


il ne faut pas mettre en place nodejs en production sur un port 80 on doit passer par un reverse proxy comme nginx ca fait partie des best practices recommandé et surtous que si ton server nodejs tourne sur le port 80 et que apache ou nginx tourne sur le port 80 ca va pas etre bien fonctionel.

pour configurer le reverse proxy je te conseil nginx c'est plus simple a ecrire et a relire plus tard et c'est tres performant .

Ok merci, je vais partir sur nginx...
Ca fait partie des best practices, oui, mais pourquoi ? D´autres pensent que c´est bête d´utiliser node derrière un proxy. Dans mon cas apache serait secondaire, et pourrait écouter un autre port. Par ailleurs sur un de mes liens posté il semble déconseillé d´utiliser un proxy à cause des pertes de performance.

Ok, je ne pense pas faire du load balancing, c'est vraiment un petit site qui utilise Ghost. Je garde mon gros site sur du mutualisé avec Apache :)
Mais j'ai installé Nginx ! J'aurai surement moins de problèmes. Reste à transférer mon site et installer node. Encore quelques galères et j'aurai enfin deployé une application Node !