2.5. Configurer NGINX en tant qu'équilibreur de charge HTTP
Vous pouvez utiliser la fonction de proxy inverse de NGINX pour équilibrer le trafic. Cette procédure décrit comment configurer NGINX en tant qu'équilibreur de charge HTTP qui envoie des requêtes à différents serveurs, en fonction de celui d'entre eux qui a le moins de connexions actives. Si les deux serveurs ne sont pas disponibles, la procédure définit également un troisième hôte pour des raisons de repli.
Conditions préalables
- NGINX est installé comme décrit dans la section Installation et préparation de NGINX.
Procédure
Modifiez le fichier
/etc/nginx/nginx.conf
et ajoutez les paramètres suivants :http { upstream backend { least_conn; server server1.example.com; server server2.example.com; server server3.example.com backup; } server { location / { proxy_pass http://backend; } } }
La directive
least_conn
dans le groupe d'hôtes nommébackend
définit que NGINX envoie des requêtes àserver1.example.com
ouserver2.example.com
, selon l'hôte qui a le moins de connexions actives. NGINX utiliseserver3.example.com
uniquement comme solution de secours au cas où les deux autres hôtes ne seraient pas disponibles.Avec la directive
proxy_pass
définie surhttp://backend
, NGINX agit comme un proxy inverse et utilise le groupe d'hôtesbackend
pour distribuer les requêtes en fonction des paramètres de ce groupe.Au lieu de la méthode d'équilibrage de charge
least_conn
, vous pouvez spécifier :- Pas de méthode permettant d'utiliser la méthode round robin et de répartir les demandes de manière égale entre les serveurs.
-
ip_hash
pour envoyer des requêtes d'une adresse client au même serveur sur la base d'un hachage calculé à partir des trois premiers octets de l'adresse IPv4 ou de l'adresse IPv6 complète du client. -
hash
pour déterminer le serveur en fonction d'une clé définie par l'utilisateur, qui peut être une chaîne, une variable ou une combinaison des deux. Le paramètreconsistent
configure la distribution des requêtes par NGINX sur tous les serveurs en fonction de la valeur de la clé hachée définie par l'utilisateur. -
random
pour envoyer des requêtes à un serveur choisi au hasard.
Redémarrez le service
nginx
:# systemctl restart nginx