Chronique de l'Admin-Sys - 6 : Application NodeJS à travers nginx

Suite à la demande d’Alexandre, je vais vous faire un petit tuto rapide pour savoir comment servir une application NodeJS avec Nginx.

Installation

apt-get install curl  
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -  
apt-get install -y nginx nodejs  

Voilà, une fois NodeJS et Nginx installés, on va pouvoir commencer les choses sérieuses.

NodeJS

mkdir myProject; cd myProject  
mkdir static;  
touch server.js  

Dans le fichier server.js :

var http = require('http');  
var server = http.createServer(function(req, res) {  
  res.writeHead(200);
  res.end('Helo World');
});
server.listen(8080);  

Puis, on exécute node server.js.

Pour récapituler, on a juste lancé une application NodeJS ultra minimaliste qui écrit 'Helo World' sur la page client. NodeJS est lancé sur le port 8080. (dans le dossier static vous mettez tout vos fichiers type css, js client, images, etc.).

Nginx

Rajouter dans votre config :

server {  
    listen *:80;
    listen [::]:80;

    server_name VOTRE.DOMAINE;

    # pour rediriger toutes les requêtes vers votre app NodeJS
    location / {
        proxy_pass http://localhost:8080;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    # Sauf les url débutant par /static/ pour que ce soit Nginx qui s’occupe de fournir les fichiers statiques
    # Il est taillé pour ça, inutile de le charger avec des requêtes inutiles pour votre application
    # Au passage nginx compresse les données
    location /static/ {
        root /path/to/myProject/;

        gzip  on;
        gzip_http_version 1.0;
        gzip_vary on;
        gzip_comp_level 6;
        gzip_proxied any;
        gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
        gzip_buffers 16 8k;

        gzip_disable ~@~\MSIE [1-6].(?!.*SV1)~@~];

        expires modified +90d;
    }
}

Pour finir, il suffit de recharger Nginx : service nginx reload et vous pouvez tester votre app en tapant dans votre navigateur http://VOTRE.DOMAINE/.


Source de la une : http://finda.photo/image/15472

Purexo

Developpeur et AdminSys sur Antarka

IN DA FACKIN KLOOD https://purexo.eu/