Public visé
Cette formation NGINX s’adresse à toute personne souhaitant configurer, installer, exploiter, sécuriser et optimiser un serveur Nginx. Elle s’adresse, également, à toute personne désirant déployer des piles de services de très haute-disponibilité en environnement critique (5G, objets connectés, e-commerce cross-canal, streaming de médias dématérialisés) en quête de repères précis et documentés sur les API, solutions et langages à privilégier pour opérer ces projets dans les meilleurs conditions.
Prérequis
Avoir suivi cette formation, ou en maîtriser les thèmes abordés :
Objectifs pédagogiques
A l’issue de cette formation Nginx, vous aurez acquis les connaissances et compétences nécessaires pour :
- Exploiter Nginx au quotidien, de l’installation à l’administration
- Exploiter au mieux la pile de services Nginx pour concevoir ou revaloriser des solutions serveurs
- Augmenter les performances et la disponibilité de Nginx
- Connaître les neuf clés secrètes de NGINX dans une optique de configuration avancée
Programme
Présentation de NGINX
- Rapide rappel sur le protocole http
- Les fonctionnalités de NGINX
- Un retour aux sources de l’efficacité algorithmique
- Architecture interne et nouveau paradigme (asynchrone)
- Pourquoi NGINX facilite l’urbanisation ?
- NGINX versus Apache
- Exemples d’architectures avec NGINX
Mise en oeuvre de NGINX
- Installation de Nginx
- Choix des modules
- Le fichier nginx.conf
- Quels impacts dans la configuration de Nginx ?
- Présentation de la distribution NGINX/OpenResty
- Démonstration et premier aperçu des performances
Travaux Pratiques
- Installation et configuration de la plateforme de services VirtualBox/Linux (VM fournie)
- Installation et configuration de la plateforme de production NGINX/OpenResty
- Revue d’inventaire des directives de configuration de NGINX
Les services applicatifs NGINX
- La richesse du contexte applicatif avec Nginx
- Les webapps PHP
- Pousser les limites de Nginx avec Lua
- Configurer Nginx comme Mail Proxy Server
Travaux Pratiques
- Installation et configuration des web-apps PHP, Python et LuaJIT de démonstration, y compris leurs back-ends MySQL et PostgreSQL (NGINX -> PHP-FPM/MySQL, NGINX -> Gunicorn/Python/Bottle/PostgreSQL, NGINX -> LuaJIT/Redis2/PostgreSQL, Apache -> PHP/MySQL)
Sécurité
- Présentation des composants et des options de configuration disponibles
- Les recommandations
- Sécurité et sandboxing avancé de la plate-forme de services NGINX : locations, caching MVC, HTTPS, HttpAuthBasicModule, WAF, GufW, etc.
Travaux Pratiques
- Installation et configuration du firewall IP GufW; Restriction d’accès par IP, [sous-]domaine DNS et/ou Port; Configuration du support HTTPS; configuration et utilisation du module d’authentification d’accès “ngx_http_auth_basic_module”
- Installation du WAF “Falko Timme”
- Installation et configuration du WAF ModSecurity comme module NGINX
- Installation et configuration du WAF VeryNginx comme module NGINX
- Evaluation des performances comparées des WAF Falko Timme, ModSecurity et VeryNginx
Load balancing avec NGINX
- Présentation des trois principales catégories de reverse-proxies disponibles
Travaux Pratiques
- Installation et configuration avancée de HaProxy comme reverse-proxy de load-balancing tolérant aux fautes de disponibilité
- Configuration de NGINX comme reverse-proxy de load-balancing
Services avancés avec NGINX
- Nginx comme Media Server
- Spécificités du streaming vidéo (VOD)
- NGINX comme serveur de mail
Travaux Pratiques
- Installation et configuration de base d’un serveur NGINX/Nginx-RTMP-Module de streaming vidéo MP4 et FLV
- Installation et configuration de base d’un serveur NGINX POP/IMAP, SMTP d’emailing et de relais de messagerie Push
Performances et tuning
- Benchmarking avancé de la plate-forme de services NGINX
- Etudes des performances (pages statiques en mode HTTP GET, web-apps PHP, Python et LuaJIT en modes HTTP GET et HTTP POST, NGINX versus Apache, Standalones et Clusters)
Travaux Pratiques
- Analyse des hauts et des bas dans les performances parfois inattendues de Nginx (les contextes sont ceux présentés dans ce chapitre mais l’on pourra aussi les personnaliser à vos besoins si le temps le permet)
Configuration avancée de NGINX
- Les neuf clés secrètes qu’il convient de connaître, de comprendre et de savoir mettre en oeuvre pour tirer le meilleur de votre plate-forme de services NGINX
Travaux Pratiques
- Configuration optimale de “nginx.conf” et de ses includes
- Configuration optimale des workers
- Optimisation des performances du caching discriminant des composants applicatifs NGINX, y compris les applications initialement urbanisées sous Apache avant d’être redéployées sous NGINX
Modalités d’évaluation des acquis
En cours de formation, par des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation.