NGINX - Maîtriser la documentation officielle
À propos de ce cours
Sommaire
- Présentation
- Pourquoi Nginx ?
- Installation
- Post-Installation
- Séparation des configurations de domaine à la apache2 debian
- Activation du logrotate
- Installation d’un script init.d
- Configuration pour une machine multi-processeurs
- Configuration d’une instance zwook
Programme du cours
Objectifs d'apprentissage
- Comprendre l'architecture et les fonctionnalités de base de Nginx
- Maîtriser l'installation et la configuration initiale de Nginx sur différents systèmes
- Apprendre à organiser les configurations par domaine de manière modulaire
- Configurer et optimiser Nginx pour les environnements multi-processeurs
- Implémenter des scripts de gestion (init.d) et des outils comme logrotate
- Déployer une instance spécifique (ex: zwook) avec des paramètres avancés
Public cible
Ce cours s'adresse aux administrateurs système, développeurs back-end et DevOps souhaitant approfondir leurs connaissances sur Nginx. Une compréhension de base des serveurs web et des lignes de commande Linux est recommandée. Les professionnels cherchant à optimiser les performances de leur infrastructure web y trouveront des techniques avancées.
Présentation
Nginx est un serveur web haute performance, réputé pour sa stabilité et sa faible consommation de ressources. Contrairement à Apache, il utilise une architecture asynchrone événementielle, idéale pour gérer des milliers de connexions simultanées. Ce cours couvrira son utilisation comme serveur web, reverse proxy, et load balancer.
Pourquoi Nginx ?
Nginx excelle dans la gestion du trafic haute densité, réduisant la latence grâce à son modèle non-bloquant. Il est 2,5 fois plus rapide qu'Apache dans des tests benchmarks standard, avec une empreinte mémoire réduite de 40%. Son système de modules dynamiques permet une extensibilité sans rechargement du serveur.
Installation
L'installation varie selon les systèmes : sous Debian/Ubuntu, utilisez apt-get install nginx. Pour les versions mainline (dernières fonctionnalités), ajoutez le dépôt officiel. Sur CentOS, activez EPEL avant d'utiliser yum. Une vérification via nginx -v confirme la version installée.
Post-Installation
Après l'installation, sécurisez Nginx :
- Désactivez les versions obsolètes de TLS
- Configurez les en-têtes de sécurité (CSP, X-XSS-Protection)
- Limitez les méthodes HTTP autorisées (GET, POST, HEAD)
Testez la configuration avec nginx -t avant tout redémarrage.
Séparation des configurations de domaine à la apache2 debian
Créez un répertoire /etc/nginx/sites-available et /etc/nginx/sites-enabled. Chaque fichier de configuration de domaine (ex: mondomaine.conf) doit inclure :
server { listen 80; server_name mondomaine.com; root /var/www/mondomaine; index index.html; } Activez avec un lien symbolique vers sites-enabled et rechargez Nginx.
Activation du logrotate
Évitez l'explosion des fichiers logs avec logrotate. Configurez /etc/logrotate.d/nginx :
/var/log/nginx/*.log { daily missingok rotate 14 compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate invoke-rc.d nginx rotate >/dev/null 2>&1 endscript } Installation d’un script init.d
Pour les systèmes sans systemd, créez /etc/init.d/nginx avec les commandes start/stop/reload. Utilisez le template Debian standard, ajustez les chemins (PID, binaire), et activez-le via update-rc.d nginx defaults.
Configuration pour une machine multi-processeurs
Optimisez worker_processes (valeur auto ou nombre de cores CPU). Ajustez worker_connections (ex: 1024) et activez accept_mutex pour équilibrer la charge entre workers. Utilisez top pour surveiller l'utilisation CPU après réglages.
Configuration d’une instance zwook
Zwook nécessite une configuration spécifique :
- Timeout augmenté à 300s pour les uploads volumineux
- Activation de WebSockets avec
proxy_set_header Upgrade $http_upgrade - Limitation des requêtes POST à 50MB via
client_max_body_size
Testez avec ab -n 1000 -c 100 http://zwook/ pour valider les performances.