NodeJS et Nginx

Voir la vidéo
Description Sommaire

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.

Publié
Technologies utilisées
Auteur :
Grafikart
Partager