Administration Système : Répartition de Charge
Ce projet simule une architecture de production moderne. L'objectif était de déployer un Load Balancer pour répartir le trafic entre deux serveurs web redondants, garantissant ainsi la continuité de service en cas de panne de l'un des nœuds.
Architecture du Cluster
Mise en place d'un environnement composé de trois serveurs Ubuntu interconnectés.
- Serveurs Web (Nœuds) : Deux instances Apache (web1 et web2) hébergeant le contenu applicatif.
- Équilibreur (Frontal) : Une instance HAProxy (lb) chargée d'aiguiller les requêtes entrantes.
# Vérification de l'interconnectivité entre les nœuds
ping 192.168.1.10 # Vers Web1
ping 192.168.1.11 # Vers Web2
ping 192.168.1.10 # Vers Web1
ping 192.168.1.11 # Vers Web2
Gouvernance des accès et Permissions
Gestion unifiée des comptes et sécurisation des répertoires de déploiement sur l'ensemble du cluster.
# Création des comptes techniques et affectation aux groupes
sudo adduser adminweb && sudo usermod -aG admins adminweb
# Sécurisation du dossier de service avec Sticky Bit de groupe
sudo chmod 2775 /srv/web
sudo adduser adminweb && sudo usermod -aG admins adminweb
# Sécurisation du dossier de service avec Sticky Bit de groupe
sudo chmod 2775 /srv/web
- Audit : Identification des lieux de stockage des identifiants (
/etc/passwd) et des répertoires personnels (/home). - Collaboration : Utilisation des groupes pour permettre aux développeurs de travailler sur la même arborescence sans compromettre les droits
root.
Configuration de la Répartition (HAProxy)
Implémentation de l'algorithme Round Robin pour équilibrer la charge de manière équitable.
# Extrait de la configuration /etc/haproxy/haproxy.cfg
backend web_servers
balance roundrobin
server web1 192.168.1.10:80 check
server web2 192.168.1.11:80 check
backend web_servers
balance roundrobin
server web1 192.168.1.10:80 check
server web2 192.168.1.11:80 check
- Health Checks : Configuration de tests de santé (
check) pour détecter automatiquement la chute d'un serveur web. - Tests de charge : Simulation de requêtes multiples via
curlpour observer la bascule dynamique entre les serveurs.
Sécurisation via Pare-feu (UFW)
Filtrage des flux entrants pour n'autoriser que le trafic nécessaire (SSH et HTTP).
sudo ufw allow 80/tcp # Autoriser le HTTP
sudo ufw enable
sudo ufw status
sudo ufw enable
sudo ufw status
Synthèse Technique
- HAProxy vs Apache : Compréhension de la différence entre un proxy de répartition et un serveur de contenu.
- Résilience : Capacité de l'infrastructure à rester opérationnelle même si l'un des serveurs Web tombe.
- Scalabilité : Possibilité d'ajouter facilement de nouveaux nœuds au backend pour supporter plus de trafic.