Un site NodeJS c’est bien, c’est rapide, c’est voilà quoi !
Sauf que de base on se retrouve avec une superbe URL du genre :
http://NOMDUSITEOUIP_SERVEUR:PORT
Donc pour donner le site a quelqu’un c’est assez difficile …. On va arranger ça !
Il y a deux façons de changer cela :
La méthode VirtualHost
La méthode ou l’on change le Port
Méthode Virtual Host
Avant tout il faut activer un option indispensable :
a2enmod proxy proxy_http
donc direction les configurations de sites /etc/apache2/sites-available
pour les sites qui n’en possèdent pas encore et /etc/apache2/sites-enabled
pour les sites déjà en production
Exemple pour mon blog sur example.com qui doit rediriger vers le port 2368
<VirtualHost *:80>
ServerName blog.example.com
ProxyPreserveHost on
ProxyPass / http://blog.example.com:2368/
ProxyPassReverse / http://blog.example.com:2368/
</VirtualHost>
On active (si besoin) le site
a2ensite NOM_DU_FICHIER.conf
et on relance apache
service apache2 reload
En cas de problème (genre le site ne s’affiche pas), on utilise une redirection simple :
<VirtualHost *:80>
ServerName blog.example.com
Redirect 301 / http://blog.example.com:2368/
</VirtualHost>
Méthode de Porc Port
Direction le répertoire de votre dossier du site en Node JS
et on entre dans le fichier configuration (config.js)
cd /var/www/REPERTOIRE_DU_SITEnano config.js
La méthode est plutôt simple: à chaque endroit ou il y a le port du site (perso j’avais le port 2368) on le remplace par 80 (port habituel des sites webs)
Globalement dans les variables url
il ne faut mettre que l’url du serveur sans le port.
Par contre dans serveur
il faut passer de ceci:
server : {
host : 'example.com',
port : '2368'
}
à ceci :
server : {
host : 'example.com',
port : '80'
}
Ne pas oublier de relancer NodeJS pour que les changements soient pris en compte.
Et voila le site s’affiche sans ce foutu port (sauf si il y a un virtual host pour cette adresse qui aura l’avantage sur NodeJS, sacré apache …