|
Sujets abordés
- Fondamentaux TCP/IP et protocole HTTP
- Notions essentielles TCP/IP
- Adressage IP (public vs privé, IPv6)
- Ports et services réseau majeurs
- Résolution de noms (DNS, fichiers hosts, mécanismes de résolution client)
- Serveur Web et dialogue client/serveur
- Anatomie du protocole HTTP (requêtes, en-têtes, codes de statut HTTP)
- Simulation de requêtes manuelles (curl, wget, telnet, nc, openssl s_client)
- Extension des protocoles : HTTP/2, HTTP/3 (QUIC) et WebDAV
- Présentation et architecture de Nginx
- Positionnement et philosophie
- Pourquoi Nginx ? Modèle event-driven (événementiel non-bloquant) vs modèle process/thread (Apache)
- Cas d'usage : serveur statique, Reverse Proxy, API Gateway, Load Balancer
- Architecture interne
- Le processus Master et les processus Workers
- Gestion de la mémoire et traitement des connexions simultanées (epoll/kqueue)
- Installation et gestion du service
- Installation via gestionnaires de paquets ou paquets officiels Nginx
- Compilation sur-mesure à partir des sources (ajout de modules tiers)
- Invocations et signaux de contrôle
- Arborescence par défaut
- Structure de la configuration Nginx
- Syntaxe du fichier nginx.conf
- Directives simples et blocs de contexte (main, events, http, server, location)
- Portée, règles d'héritage et inclusions
- Hébergement virtuel (Virtual Hosts / Server Blocks)
- Serveurs virtuels basés sur le nom de domaine (server_name)
- Serveurs virtuels basés sur l'adresse IP et le port (listen)
- Gestion de l'hôte par défaut (default_server) et requêtes non identifiées
- Traitement des URLs et des Blocs location
- Priorités d'évaluation des règles location (préfixes, caractères génériques, expressions régulières = ~ ~* ^~)
- Gestion des index, répertoires, alias (root vs alias) et erreurs personnalisées (error_page)
- Réécriture d'URL et redirections (rewrite, return, try_files)
- Rapports d’activité et journalisation
- Gestion des Journaux (logs)
- Directives access_log et error_log
- Personnalisation des formats de logs via log_format (champs réseau, temps de réponse, variables)
- Filtrage conditionnel des logs (ex. : ignorer les health checks)
- Exploitation et maintenance
- Rotation des logs avec logrotate et réouverture des descripteurs (nginx -s reopen)
- Parsing et analyse de logs avec des outils dédiés (GoAccess, AWStats)
- Supervision de l'état en temps réel (stub_status / Nginx Plus)
- Traitement des contenus dynamiques
- Incapacité native d'exécution CGI directe et architecture déportée
- Modèle de délégation via sockets Unix ou TCP
- Protocole FastCGI et applications Web
- Traitement de PHP via PHP-FPM (configuration, pool de processus, fastcgi_pass)
- Directives de transmission (fastcgi_param, gestion des buffers)
- Applications Python / Ruby / Node.js / Go
- Proxying vers des serveurs d'applications (uWSGI, Gunicorn, PM2, Puma)
- Gestion des formulaires et des téléversements
- Directives d'ajustement de taille de requête (client_max_body_size)
- Reverse Proxy et équilibrage de charge
- Proxy inversé (Reverse Proxy)
- Directives proxy_pass et réécriture des en-têtes HTTP (Host, X-Real-IP, X-Forwarded-For, X-Forwarded-Proto)
- Gestion des timeouts et des tampons (proxy_buffer_size, proxy_buffers)
- Support des WebSockets et du streaming (Server-Sent Events)
- Équilibrage de charge (Load Balancing)
- Bloc upstream et méthodes de répartition : Round-Robin, Least Connections (least_conn), IP Hash (ip_hash), Poids (weight)
- Détection de pannes et tolérance aux fautes (max_fails, fail_timeout, backup, down)
- Optimisation et performances
- Paramétrage système et noyau
- Ajustement des limites de fichiers (ulimit -n, worker_rlimit_nofile)
- Optimisation des connexions worker_connections et worker_processes (mode auto)
- Gains de vitesse et caching
- Directives d'envoi efficace de fichiers (sendfile, tcp_nopush, tcp_nodelay)
- Mise en cache de contenus dynamiques via proxy_cache (définition des zones, proxy_cache_valid, purging)
- Cache des métadonnées de fichiers (open_file_cache)
- Compression et économie de bande passante
- Activation et réglages de gzip (niveaux de compression, types MIME)
- Support optionnel de Brotli
- Sécurité, contrôle d’accès et chiffrement (SSL/TLS)
- Minimisation des risques
- Masquage de la version de Nginx (server_tokens off;)
- Restriction des méthodes HTTP et limitation du débit/connexions (limit_req, limit_conn)
- Contrôle d’accès et authentification
- Restauration/filtrage par adresse IP (allow, deny)
- Authentification HTTP Basic (auth_basic, htpasswd)
- Intégration optionnelle avec des systèmes tiers via auth_request (OAuth2, LDAP, etc.)
- Mise en œuvre du chiffrement SSL/TLS
- Concepts de cryptographie asymétrique, certificats X.509 et chaîne de certification
- Configuration HTTPS (ssl_certificate, ssl_certificate_key)
- Intégration avec Let's Encrypt / Certbot (renouvellement automatique)
- Sécurisation TLS moderne (désactivation des protocoles obsolètes, sélection de ciphers sécurisés, HTTP Strict Transport Security / HSTS, OCSP Stapling)
|
|
Tarifs
Forfait 1-2 personnes : 1100 € H.T. pour 1 journée, 2000 € H.T. pour 2 jours, 2700 € H.T. pour 3 jours, 3250 € H.T. pour 4 jours
Forfait 3-5 personnes : 1650 € H.T. pour 1 journée, 3000 € H.T. pour 2 jours, 4000 € H.T. pour 3 jours, 4800 € H.T. pour 4 jours
Forfait 6-9 personnes : 2350 € H.T. pour 1 journée, 4200 € H.T. pour 2 jours, 5600 € H.T. pour 3 jours, 6700 € H.T. pour 4 jours
|