Introduction
- Rappel sur le traitement des requêtes HTTP, requête persistante, session.
- De la question DNS au serveur d'application.
- Rôle des composants situés en amont des serveurs.
- High-Availability, Load Balancing et Failover.
Tester la montée en charge
- Stress-test de serveurs et attaque DOS.
- Test de charge et scénarios de montée en charge : JMeter, OpenSTA.
- Observation du système pendant un stress-test.
Travaux pratiques
Stress et DOS d'un service HTTP, test de montée en charge avec AB et JMeter.
Le DNS et la répartition de charge
- La répartition de charge au niveau DNS.
- Problématiques des caches en cas de panne.
- Tests de vie et mise à jour dynamique.
Travaux pratiques
Configuration DNS avec répartition de charge, principe de mise à jour dynamique.
Frontal, proxy et reverse proxy
- Rôle et intérêt du proxy-cache.
- Reverse proxy et impact sur les serveurs d'application.
- Squid : configuration du cache et proxy transparent.
Travaux pratiques
Configuration de Squid en reverse proxy transparent.
Répartition de charge avec LVS
- LVS : Linux Virtual Server.
- Configuration de LVS en amont de serveurs Web.
- Modes et algorithmes de répartition de charge.
- Gestion des pannes et tests de vie.
Travaux pratiques
Configuration d'un pool de serveurs Web avec LVS.
Répartition de charge avec HAProxy
- Fonctionnalités de HAProxy.
- Installation et mode de lancement.
- Le fichier de configuration et les options générales.
- L'interface graphique et les statistiques.
Travaux pratiques
Configuration d'un service HTTP et des backends, gestion des pannes et tests de vie.
NGINX : serveur HTTP, proxy ou Load Balancer ?
- Mécanismes de proxy et répartition de charge.
- Filtrage d'URL et redirections.
- Configurer NGINX en Load Balancer.
Travaux pratiques
Configuration de NGINX en reverse proxy filtrant et en répartiteur de charge.
Gérer la charge d'Apache et d'autres serveurs
- Les clients, les processus et la mémoire.
- Paramètres de tuning des MPM Prefork/Worker.
- Servir les contenus statiques via un frontal léger.
- Tuning d'un serveur d'application comme Tomcat.