Load Balancing
nginx joue le rôle d'un serveur proxy inverse. Quelles règles utilise-t-il pour distribuer les requêtes ? De quel algorithme de planification d'équilibrage de charge dispose-t-il ?
Le nombre de requêtes envoyées par le client et reçues par le serveur proxy inverse nginx mentionné ici est ce que nous appelons la charge
Le nombre de requêtes est réparti entre les différents serveurs selon certaines règles, qui est une règle d'équilibrage
Donc~ les requêtes reçues par le serveur sont réparties selon les règles Le Le processus est appelé équilibrage de charge.
Dans le fonctionnement réel du projet, il existe deux types d'équilibrage de charge : l'équilibrage de charge matériel et l'équilibrage de charge logiciel est également appelé équilibrage de charge dur, comme l'équilibrage de charge F5, qui est relativement coûteux. Cependant, la stabilité et la sécurité des données sont très bien garanties. Seules des entreprises telles que China Mobile et China Unicom choisiront des opérations de charge lourde ; davantage d'entreprises choisiront d'utiliser l'équilibrage de charge logiciel pour des raisons de coût. L'équilibrage de charge logiciel est un problème. mécanisme de distribution de file d'attente de messages implémenté à l'aide de la technologie existante combinée au matériel hôte
L'algorithme de planification d'équilibrage de charge pris en charge par Nginx est le suivant : (Points clés)
interrogation de poids (par défaut) :
Les requêtes reçues sont attribuées aux différents serveurs backend une par une dans l'ordre, même si un certain serveur backend est utilisé pendant l'utilisation. S'il tombe en panne, Nginx le fera automatiquement supprimez le serveur de la file d’attente et l’acceptation de la demande ne sera en aucun cas affectée. De cette manière, une valeur de poids (poids) peut être définie pour différents serveurs back-end afin d'ajuster le taux d'allocation des demandes sur différents serveurs ; plus les données de poids sont grandes, plus la probabilité d'être attribuée à la valeur de poids est grande ; , Il est principalement ajusté pour différentes configurations matérielles de serveur back-end dans des environnements de travail réels.
ip_hash :
Chaque requête est mise en correspondance en fonction du résultat de hachage de l'adresse IP du client initiateur. Sous cet algorithme, un client avec une adresse IP fixe accédera toujours au. même adresse. Un serveur back-end, qui résout également dans une certaine mesure le problème du partage de session dans un environnement de déploiement de cluster.
équitable :
Ajustement intelligent de l'algorithme de planification, répartition dynamiquement équilibrée basée sur le temps écoulé entre le traitement de la demande et la réponse du serveur back-end, un serveur à court temps de réponse et efficacité de traitement élevée Les serveurs avec une forte probabilité de se voir attribuer des requêtes et des temps de réponse longs et une faible efficacité de traitement se voient attribuer moins de requêtes un algorithme de planification qui combine les avantages des deux premiers ; Cependant, il convient de noter que Nginx ne prend pas en charge l'algorithme fair par défaut. Si vous souhaitez utiliser cet algorithme de planification, veuillez installer le module amont_fair.
url_hash :
Distribuez les requêtes en fonction du résultat de hachage de l'url accédée. L'url de chaque requête pointera vers un serveur fixe sur le backend, qui peut être. utilisé comme statique dans Nginx Améliorer l'efficacité du cache dans le cas des serveurs. Il convient également de noter que Nginx ne prend pas en charge cet algorithme de planification par défaut. Si vous souhaitez l'utiliser, vous devez installer le package logiciel de hachage Nginx.
Pour plus d'articles techniques liés à Nginx, veuillez visiter la colonne Tutoriel d'utilisation de Nginx pour apprendre !
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!