Nginx

Installation

Démarrage, arrêt, reload

Configuration

Le fichier de configuration principal est situé dans /etc/nginx/nginx.conf

Créer des “virtual hosts” pour chaque site/application dans des fichiers séparés, généralement situés dans /etc/nginx/sites-available/

Exemple de configuration d’un site web statique monsite.fr

1- Préparer le site Web

On suppose que index.html et toutes les autres resources statiques sont dans /var/www/monsite

2- Créer un fichier de configuration pour le site web

Le placer dans /etc/nginx/sites-available/monsite.fr

3- Activer le site en créant un lien symbolique dans /etc/nginx/sites-enabled/

4- Vérifier la configuration

5- charger la configuration

Configuration HTTPS (SSL/TLS)

Installer certbot

Création et installation d’un certificat

La commande suivante créé un nouveau certificat pour le domaine ET ajoute dans la configuration du domaine les directives nécessaires pour le prendre en compte :

certbot va modifier le contenu du fichier /etc/nginx/sites-available/monsite.fr pour : - rediriger toutes les requêtes http://monsite.fr vers https://monsite.fr et idem pour www.monsite.fr - ajouter les certificats pour les requêtes https

L’installation de certbot ajoute également un script cron (voir /etc/cron.d/certbot) qui teste deux fois par jour les dates d’expiration des certificats et qui renouvelle automatiquement ceux qui arrivent au dernier tiers de leur période de validité.

Logs

Access logs

Error logs

Utiliser tail -f

Virtual Host par défaut

Lorsque l’url ne correspond à aucun server_name d’aucun virtual host, c’est le virtual host par défaut qui est activé, qui est celui dont le nom est le premier dans l’ordre lexicographique dans /etc/nginx/sites-enabled.

Souvent, on créera un virtual host par dėfaut de nom 000_default qui conduira à une page d’erreur

Directive autoindex

Elle permet d’afficher une hiérarchie de fichiers statiques.

Déploiement d’une application express sur un serveur Nginx

Démonisation du programme serveur avec PM2

PM2 est un process manager pour applications nodejs. Une application lancée avec pm2 est détachée de tout terminal et continue à s’exécuter après fermeture du terminal et de la session qui ont servi à son lancement. En cas de crash, l’application est relancée automatiquement.

Installation

Lancement d’une application

Pour lancer le processus serveur et l’ajouter à la liste des processus gérés par PM2 :

Inspection des processus pm2 en cours

Visionnage en continu des logs d’un processus

Relancement d’une application

Retrait de l’application

Utilisation d’un fichier de configuration

Un fichier de configuration ecosystem.config.cjs (.cjs car backend es6) peut également être utilisé pour lancer une application pm2; on peut alors donner un nom, des paramètres et des variables d’environnement. Par exemple :

Pour lancer l’application :

ou

Configuration d’un VirtualHost Nginx pour une application Express

On doit préciser essentiellement deux directives, une première pour servir les fichiers statiques, une seconde pour relayer (proxypass) toutes les autres requêtes vers le processus Express qui est lancé localement sur un port interne.

Configuration d’un VirtualHost Nginx pour une application VueJS en mode “history”

La directive location / renvoie tous les accès HTTP vers index.html, où réside l’application front