Plutôt que de faire reposer tout le trafic d’un site sur une seule machine, l’équilibrage de charge distribue les requêtes entre plusieurs serveurs applicatifs qui hébergent la même application. Le visiteur ne voit qu’une seule adresse ; en coulisses, un composant frontal décide, requête par requête, quel serveur va traiter la demande.
Application à un site WordPress à fort trafic
Pour qu’un site WordPress fonctionne correctement derrière plusieurs serveurs équilibrés, deux éléments doivent être mutualisés : les fichiers du dossier wp-content/uploads (via un stockage partagé ou un CDN) et la base de données (un seul serveur MySQL, ou une réplication maître-esclave). Sans cette mutualisation, chaque serveur verrait des médias ou des contenus différents selon la requête qui lui est acheminée.
Exemple de configuration Nginx en amont
upstream backend_wp {
server 10.0.0.11:9000;
server 10.0.0.12:9000;
}
Chaque serveur backend_wp exécute ici sa propre instance PHP-FPM ; Nginx répartit les requêtes selon un algorithme configurable (round-robin par défaut).
Bon à savoir
- Les sessions PHP par défaut sont stockées sur disque local : sans backend de session partagé (Redis, base de données), un visiteur peut être déconnecté en changeant de serveur d’une requête à l’autre.
- Un équilibreur de charge inclut souvent une sonde de santé qui retire automatiquement un serveur défaillant de la rotation, ce qui recoupe le rôle de la surveillance applicative.
- Ne confondez pas l’équilibrage de charge avec un simple proxy inverse : ce dernier peut ne desservir qu’un seul serveur, sans notion de répartition entre plusieurs machines.