Introduction
- Le protocole HTTP : notions de base.
- Le problème C10K, les threads et la mémoire.
- L'architecture asynchrone de NGINX.
Travaux pratiques
Inspection de requêtes HTTP.
Installation et prise en main de NGINX
- Panorama des packages disponibles.
- Compiler NGINX à partir des sources.
- Démarrage, options de ligne de commande et signaux.
- La documentation.
Travaux pratiques
Installer, démarrer le serveur, créer une configuration simple.
Configuration du serveur et des hôtes virtuels
- Structure des fichiers de configuration.
- Configuration du serveur. Identité, limites et tuning.
- Les blocs "server" et les blocs "location", les directives concernant les requêtes.
- Les variables (utilisation).
- NGINX et les hôtes virtuels.
Travaux pratiques
Configuration d'hôtes virtuels, démarrage de plusieurs instances.
Sécurité, redirection et réécriture d'adresses
- Contrôle d'accès des clients par adresse IP.
- Authentification HTTP.
- Filtrage de requêtes et réécriture d'adresses.
- Gérer les pages d'erreurs.
- SSL, mise en œuvre d'un hôte HTTPS.
- Les logs, formats et configuration.
Travaux pratiques
Mise en œuvre de HTTPS, du contrôle d'accès, du filtrage.
Proxy, Frontal, et reverse proxy
- Proxy simple avec NGINX.
- Proxy SSL vers un autre serveur HTTP.
- Proxy cache : outil et usage de inotifywait.
- Gérer des erreurs entre frontal et server-réel.
Travaux pratiques
Mise en œuvre de différentes configurations utilisant NGINX en frontal d'Apache.
Les contenus dynamiques et FastCGI
- Modifier l'encodage et le contenu des réponses à la volée.
- FastCGI Process Manager (FPM).
- Servir des applications PHP ou PERL grâce à FPM.
- Mise en cache de contenus (Memcached).
Travaux pratiques
Mise en œuvre d'une application de type phpMyAdmin et installation de WordPress.
Gestion et répartition de la charge
- Monitoring et Accounting.
- Mécanismes de proxy et répartition de charge.
- Mise en œuvre d'un frontal avec upstream.
- Limiter la charge du serveur.
- Observer la charge et les statistiques : sar, Munin.
- Outil et test de charge comparatif : Gatling.
Travaux pratiques
Tester la charge du serveur dans différentes configurations, étude de la mémoire et des temps de réponse. Visualiser la charge avec Munin.