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
Il est demandé aux participants de connaître les bases de TCP/IP et des technologies web. Une bonne connaissance d’Apache et des piles de services qu’il permet d’opérer sera un plus mais n’est pas obligatoire.
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