Node.js derrière un proxy Apache
le 28 octobre 2013,Pour un projet dont je ne tarderai plus à vous parler, j’ai eu à faire cohabiter Apache2 et Node.js sur un même machine déstinée à la production. Je voulais pouvoir accéder à mon application Node.js sur le port 80.
Le sujet est assez bien documenté et ne présente pas de difficultés particulières ; cet article sera surtout une mise en relation des différents tutos et autres posts que j’ai pu lire ici et là.
On suppose ici qu’Apache2 tourne déjà et qu’il est configuré pour utiliser les Virtual Hosts.
Installation de Node.js
Node.js n’a toujours pas fait son arrivée dans les dépots officiels Debian stable. On devra donc l’installer depuis les sources.
Node.js depuis les sources
Rien de bien complexe à cette étape. Ces quelques lignes suffiront à avoir un Node.js fonctionnel :
1 | $ cd /tmp |
Node.js en tant que service
Créons un utilisateur pour notre application :
1 | # sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/super-app super-app |
Puis créez le fichier SuperApp.js sous le répertoire /home/super-app/ :
1 | var http = require('http'); |
Pour utiliser votre application en tant que service, un script init.d a été réalisé par un certain Peter Host. Servons-nous en :
1 | $ cd /tmp |
On va maintenant éditez le script pour l’adapter à nos besoins :
1 | $ nano super-app.sh |
Les directives à modifier sont les suivantes :
1 | DEAMON_ARGS="/home/super-app/SuperApp.js" |
Le fichier dans l’état fonctionnera. Libre à vous de le tweaker à votre sauce, mais avant ça on va le mettre au bon endroit et le lancer une première fois !
1 | $ su |
Vous devriez pouvoir y accéder via http://IPDUSERVEUR:1337/.
Configuration de Apache2
On n’a plus qu’à éditer le bon Vhost et demander à Apache2 de fonctionner en tant que proxy pour ce host :
1 | $ nano /etc/apache2/mondomaine |
Puis collez-y ce qui suit :
1 | <VirtualHost *:80> |
On active le nouveau Vhost et on redémarre Apache2 :
1 | $ su |
Conclusion
Vous n’avez plus qu’à vous rendre à l’adresse http://super-app.mondomaine.fr/ et à admirer le résultat.
J’utilise cette solution depuis quelques semaines et je n’ai jusqu’alors rencontré aucun problème.
En espérant que ce petit tuto vous aura plu ; je vous dit à bientôt, et je me ferai un plaisir de lire vos remarques ou de répondre à vos questions dans les commentaires !