Pour débuter
Outils de base
VIM
06 min
SSH
14 min
rsync
20 min
Shell fish
13 min
Serveur HTTP
Apache
40 min
Nginx
30 min
PHP
NodeJS
Base de données
MySQL
15 min
Redis
08 min
Emails
HTTPS
FTP
ProFTPD
14 min
Sécurité
Pour le confort
Déploiement

Dans ce chapitre nous allons voir comment héberger une application NodeJS à l'aide d'nginx et pm2. Le principe va être de lancer l'application NodeJS en local sur le serveur et d'utiliser nginx comme proxy pour pointer vers la bonne application.

Nginx proxy

Nous allons donc commencer par créer un nouveau bloc server pour notre nom de domaine.

upstream mondomaine_fr {
    server localhost:4000;
}

server {

    listen 80;
    listen [::]:80; 
    server_name mondomaine.fr;

    location / {
        proxy_pass http://mondomaine_fr;
    }

    location /websocket/ {
        proxy_pass http://mondomaine_fr;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

}

La configuration est plutôt basique mais on notera la présence d'en-tête supplémentaires pour supporter les websockets. Si votre serveur NodeJS gère à la fois le HTTP et les websockets il peut être intéréssant de créer un sous chemin afin d'éviter d'envoyer les en-tête quand ce n'est pas nécessaire.

NodeJS en tâche de fond

Il faut maintenant faire fonctionner notre application en tâche de fond et mettre en place un superviseur afin de la maintenir en ligne. Il existe plusieurs librairies qui permettent de faire ça (par exemple forever ou pm2).

pm2 start server.js

pm2 (ou forever) va alors lancer votre application et la maintenir fonctionelle en la redémarrant en cas de sortie inattendue.