Maison >Opération et maintenance >Nginx >Quels sont les algorithmes d'équilibrage de charge de nginx ?

Quels sont les algorithmes d'équilibrage de charge de nginx ?

(*-*)浩
(*-*)浩original
2019-11-02 09:41:426427parcourir

Quels sont les algorithmes d'équilibrage de charge de nginx ?

Algorithme de planification d'équilibrage de charge pris en charge par Nginx

1.round robin (par défaut) (apprentissage recommandé : Tutoriel Nginx)

La méthode d'interrogation, qui distribue tour à tour les requêtes à chaque serveur d'arrière-plan, est la méthode d'équilibrage de charge par défaut.

Applicable aux situations où les performances de la machine en arrière-plan sont cohérentes.

Les machines en panne peuvent être automatiquement supprimées de la liste de services.

2.weight

Distribuez les requêtes à différentes machines en fonction du poids, spécifiez la probabilité d'interrogation, le poids est proportionnel au taux d'accès, utilisé pour les performances inégales du serveur back-end .

Par exemple :

upstream bakend {    
server 192.168.0.14 weight=10;    
server 192.168.0.15 weight=10;    
}

3. IP_hash

Envoyez la requête au serveur backend en fonction de la valeur de hachage de l'adresse IP du demandeur, qui peut assurez-vous qu'elle provient de la même IP. La requête est envoyée à une machine fixe, ce qui peut résoudre le problème de session.

Par exemple :

upstream bakend {    
ip_hash;    
server 192.168.0.14:88;    
server 192.168.0.15:80;    
}

4.url_hash (tiers)

Divisez les requêtes en différentes machines en fonction de la valeur de hachage de l'URL demandée, C'est efficace lorsque le serveur d'arrière-plan est mis en cache.

Par exemple :

Ajoutez une instruction de hachage en amont. D'autres paramètres tels que le poids ne peuvent pas être écrits dans l'instruction du serveur hash_method est l'algorithme de hachage utilisé

upstream backend {    
server squid1:3128;    
server squid2:3128;    
hash $request_uri;    
hash_method crc32;    
}

conseils :

bakend en amont{#Définir l'adresse IP et l'état du périphérique d'équilibrage de charge

ip_hash;    
server 127.0.0.1:9090 down;    
server 127.0.0.1:8080 weight=2;    
server 127.0.0.1:6060;    
server 127.0.0.1:7070 backup; 
}

Ajouter

proxy_pass http://bakend/;

Le statut de chaque appareil est défini sur :

1.down signifie que le serveur précédent ne participe temporairement pas à la charge

2.weight La valeur par défaut est 1. Plus le poids est grand, plus le poids de la charge est important.

3.max_fails : Le nombre d'échecs de requêtes autorisés est de 1 par défaut. Lorsque le nombre maximum est dépassé, l'erreur définie par le module proxy_next_upstream est renvoyée.

4.fail_timeout : La pause. temps après les échecs de max_fails.

5.sauvegarde : lorsque toutes les autres machines autres que de sauvegarde sont en panne ou occupées, demandez la machine de sauvegarde. Cette machine aura donc le moins de pression.

nginx prend en charge la configuration de plusieurs groupes d'équilibrage de charge en même temps pour une utilisation par les serveurs inutilisés.

client_body_in_file_only Réglé sur On, les données de la publication client peuvent être enregistrées dans un fichier pour le débogage

client_body_temp_path Définissez le répertoire du fichier d'enregistrement pour définir jusqu'à 3 niveaux de répertoires

URL de correspondance d'emplacement. Vous pouvez rediriger ou effectuer un nouvel équilibrage de charge proxy

5. équitable (tiers)

distribuer les demandes et les réponses en fonction du temps de réponse en arrière-plan. Un délai de distribution plus court entraînera davantage de demandes.

Par exemple :

upstream backend {    
server server1;    
server server2;    
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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn