Maison > Opération et maintenance > Nginx > Quelles sont les stratégies d'équilibrage de charge nginx ?

Quelles sont les stratégies d'équilibrage de charge nginx ?

(*-*)浩
Libérer: 2019-07-15 13:40:53
original
3795 Les gens l'ont consulté

Dans le cluster de serveurs, Nginx joue le rôle d'un serveur proxy (c'est-à-dire un proxy inverse). Afin d'éviter une pression excessive sur un seul serveur, il transmet les requêtes des utilisateurs vers différents serveurs.

Quelles sont les stratégies d'équilibrage de charge nginx ?

Stratégie d'équilibrage de charge Nginx

L'équilibrage de charge est utilisé à partir de la liste des serveurs backend définis depuis le "amont" module Sélectionnez un serveur pour accepter la demande de l'utilisateur. Un module en amont le plus basique ressemble à ceci. Le serveur dans le module est la liste de serveurs :

#动态服务器组
    upstream dynamic_zuoyu {
        server localhost:8080;  #tomcat 7.0
        server localhost:8081;  #tomcat 8.0
        server localhost:8082;  #tomcat 8.5
        server localhost:8083;  #tomcat 9.0
    }
Copier après la connexion

Une fois la configuration du module en amont terminée, vous devez inverser le proxy pour l'accès spécifié à la liste de serveurs :

#其他页面反向代理到tomcat容器
        location ~ .*$ {
            index index.jsp index.html;
            proxy_pass http://dynamic_zuoyu;
        }
Copier après la connexion

Il s'agit de l'instance d'équilibrage de charge la plus basique, mais elle ne suffit pas à répondre aux besoins réels

Actuellement, le module amont du serveur Nginx prend en charge 6 modes de distribution :

Round La méthode de requête est la stratégie d'équilibrage de charge par défaut du module en amont. Chaque requête est distribuée à un serveur backend différent une par une dans l'ordre chronologique.

Méthode de pondération, spécifiez la probabilité d'interrogation en fonction de la stratégie d'interrogation.

ip_hash, spécifie la méthode d'allocation de l'équilibreur de charge basée sur l'adresse IP du client. Cette méthode garantit que les requêtes du même client sont toujours envoyées au même serveur pour garantir les sessions de session. De cette manière, chaque visiteur dispose d'un accès fixe à un serveur back-end, ce qui peut résoudre le problème de l'impossibilité de la session à traverser les serveurs.

least_conn, transférez la demande au serveur backend avec moins de connexions. L'algorithme d'interrogation transmet les requêtes à chaque backend de manière uniforme afin que leurs charges soient à peu près les mêmes ; cependant, certaines requêtes prennent beaucoup de temps, ce qui entraînera une charge plus élevée du backend où elles se trouvent. Dans ce cas, less_conn peut obtenir un meilleur effet d'équilibrage de charge.

La mise en œuvre de stratégies d'équilibrage de charge tierces nécessite l'installation de plug-ins tiers.

équitable, attribuez les requêtes en fonction du temps de réponse du serveur, et celles avec des temps de réponse courts seront attribuées en premier.

url_hash, alloue les requêtes en fonction du résultat de hachage de l'URL consultée, de sorte que chaque URL soit dirigée vers le même serveur back-end et doit être utilisée conjointement avec les accès au cache. Plusieurs requêtes pour la même ressource peuvent arriver sur différents serveurs, ce qui entraîne des téléchargements multiples inutiles, de faibles taux d'accès au cache et une perte de temps en matière de ressources. En utilisant url_hash, la même URL (c'est-à-dire la même demande de ressource) peut atteindre le même serveur. Une fois la ressource mise en cache, elle peut être lue depuis le cache lorsqu'une demande est reçue.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal