Maison  >  Article  >  Opération et maintenance  >  Quels sont les modes permettant à nginx d’implémenter l’équilibrage de charge ?

Quels sont les modes permettant à nginx d’implémenter l’équilibrage de charge ?

王林
王林avant
2020-06-24 17:28:387890parcourir

Cet article provient du tutoriel nginx. Il présente plusieurs modes de nginx pour réaliser l'équilibrage de charge. Il a une certaine valeur de référence et j'espère qu'il pourra aider tout le monde. nginx implémente le mode d'équilibrage de charge : 1. Polling ; 2. ip_hash ; 3. url_hash ;

Quels sont les modes permettant à nginx d’implémenter l’équilibrage de charge ?

(Tutoriel recommandé : Tutoriel nginx)

nginx dispose de plusieurs modes pour implémenter l'équilibrage de charge :

1. Sondage

Chaque requête est attribuée à différents serveurs backend un par un dans l'ordre chronologique, ce qui est également le mode par défaut de nginx. La configuration du mode polling est très simple, il suffit d'ajouter la liste des serveurs au module amont.

La configuration suivante signifie : il y a trois serveurs dans la charge Lorsqu'une requête arrive, nginx alloue la requête aux trois serveurs par ordre chronologique.

upstream serverList {
    server 1.2.3.4;
    server 1.2.3.5;
    server 1.2.3.6;
    }

2. ip_hash

Chaque requête est allouée en fonction du résultat de hachage de l'IP d'accès, et le même client IP accède toujours à un serveur back-end. Il peut garantir que les requêtes provenant de la même adresse IP sont envoyées à une machine fixe, ce qui peut résoudre le problème de session.

La configuration suivante signifie : il y a trois serveurs dans la charge. Lorsqu'une requête arrive, nginx donnera la priorité à son allocation en fonction du résultat de ip_hash, c'est-à-dire que la requête pour la même IP est fixée sur. un certain serveur, et les autres seront alloués en fonction du résultat de ip_hash. La séquence temporelle distribue les requêtes à trois serveurs pour traitement.

upstream serverList {
    ip_hash
    server 1.2.3.4;
    server 1.2.3.5;
    server 1.2.3.6;
}

3. url_hash

Les requêtes sont allouées en fonction du résultat de hachage de l'URL consultée. La même URL est toujours transmise au même serveur backend pour traitement.

upstream serverList {
    server 1.2.3.4;
    server 1.2.3.5;
    server 1.2.3.6;
    hash $request_uri; 
    hash_method crc32; 
}

4. juste

Les requêtes sont allouées en fonction du temps de réponse du serveur backend, et celles avec des temps de réponse courts sont allouées en premier.

upstream serverList {
    server 1.2.3.4;
    server 1.2.3.5;
    server 1.2.3.6;
    fair;
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer