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 :
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