22. décembre 2017 ( Serveur )

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