Maison  >  Article  >  développement back-end  >  Mécanisme de basculement et de récupération dans la solution d'équilibrage de charge Nginx

Mécanisme de basculement et de récupération dans la solution d'équilibrage de charge Nginx

王林
王林original
2023-10-15 11:14:141290parcourir

Mécanisme de basculement et de récupération dans la solution déquilibrage de charge Nginx

Mécanisme de basculement et de récupération dans la solution d'équilibrage de charge Nginx

Introduction :
Pour les sites Web à forte charge, l'utilisation de l'équilibrage de charge est l'un des moyens importants pour garantir la haute disponibilité du site Web et améliorer les performances. En tant que puissant serveur Web open source, la fonction d'équilibrage de charge de Nginx a été largement utilisée. En matière d'équilibrage de charge, la manière de mettre en œuvre des mécanismes de basculement et de récupération est une question importante à prendre en compte. Cet article présentera le mécanisme de basculement et de récupération dans l'équilibrage de charge Nginx et donnera des exemples de code spécifiques.

1. Mécanisme de basculement
Le basculement fait référence à la capacité du système à transférer de manière transparente la charge vers d'autres nœuds normaux lorsqu'un ou plusieurs nœuds tombent en panne. Nginx propose une variété d'options de configuration du mécanisme de basculement. Voici quelques méthodes couramment utilisées.

  1. Basculement basé sur un contrôle de santé
    Le module en amont de Nginx fournit un mécanisme de basculement basé sur des contrôles de santé actifs. En envoyant périodiquement des demandes de vérification de l'état au serveur principal, la disponibilité du nœud peut être jugée et l'équilibrage de charge peut être effectué en fonction des résultats de la vérification. Lorsqu'un nœud tombe en panne, Nginx transmettra automatiquement les demandes à d'autres nœuds normaux pour réaliser le basculement.

Ce qui suit est un exemple de configuration d'équilibrage de charge basée sur une vérification de l'état :

upstream backend {
    server backend1.example.com:80;
    server backend2.example.com:80;
    check interval=3000 rise=2 fall=3 timeout=1000;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend;
    }
}

Dans la configuration ci-dessus, une demande de vérification de l'état est envoyée au serveur backend toutes les 3 secondes. Lorsqu'il y a deux réponses normales consécutives, le nœud est considéré comme revenu à la normale ; lorsqu'il y a trois réponses anormales consécutives, le nœud est considéré comme défectueux. Nginx effectuera un équilibrage de charge en fonction de la disponibilité des nœuds et passera automatiquement aux nœuds normaux.

  1. Basculement basé sur la détection active
    Le module de flux de Nginx fournit un mécanisme de basculement basé sur la détection active. En envoyant périodiquement des requêtes de sonde au serveur backend, la disponibilité des nœuds peut être détectée et l'équilibrage de charge effectué en fonction des résultats de la sonde. Lorsqu'un nœud tombe en panne, Nginx transmettra automatiquement la demande à d'autres nœuds normaux pour réaliser le basculement.

Ce qui suit est un exemple de configuration d'équilibrage de charge basée sur la détection active :

stream {
    upstream backend {
        server backend1.example.com:80;
        server backend2.example.com:80;
        check interval=3000 rise=2 fall=3 timeout=1000;
    }

    server {
        listen 80;
        proxy_pass backend;
    }
}

Dans la configuration ci-dessus, une requête de détection est envoyée au serveur backend toutes les 3 secondes. Lorsqu'il y a deux réponses normales consécutives, le nœud est considéré comme revenu à la normale ; lorsqu'il y a trois réponses anormales consécutives, le nœud est considéré comme défectueux. Nginx effectuera un équilibrage de charge en fonction de la disponibilité des nœuds et passera automatiquement aux nœuds normaux.

2. Mécanisme de récupération après panne
La récupération après panne fait référence à la capacité du système à redistribuer automatiquement la charge au nœud après la réparation d'une panne de nœud. Nginx propose une variété d'options de configuration pour les mécanismes de récupération après panne. Voici quelques méthodes couramment utilisées.

  1. Récupération après panne basée sur un bilan de santé
    Le module en amont de Nginx fournit également un mécanisme de récupération après panne basé sur des contrôles de santé actifs. Une fois la disponibilité d'un nœud restaurée, Nginx redistribue automatiquement les requêtes au nœud.

Voici un exemple de configuration de récupération après panne basée sur une vérification de l'état :

upstream backend {
    server backend1.example.com:80;
    server backend2.example.com:80;
    check interval=3000 rise=2 fall=3 timeout=1000;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend;
    }
}

Dans la configuration ci-dessus, lorsque la disponibilité d'un nœud est restaurée, Nginx redistribuera automatiquement les requêtes au nœud.

  1. Récupération après panne basée sur le poids
    Le module en amont de Nginx fournit également un mécanisme de récupération après panne basé sur le poids. En définissant différentes valeurs de poids pour les nœuds, vous pouvez contrôler le rapport de répartition de la charge. Lorsque la disponibilité d'un nœud est restaurée, la valeur de poids du nœud peut être ajustée pour le ramener progressivement à son état de charge normal.

Ce qui suit est un exemple de configuration de récupération après panne basée sur le poids :

upstream backend {
    server backend1.example.com:80 weight=5;
    server backend2.example.com:80 weight=1;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend;
    }
}

Dans la configuration ci-dessus, le poids du serveur backend backend1 est de 5 et le poids du serveur backend backend2 est de 1. Lorsque la disponibilité du backend1 est restaurée, sa valeur de poids peut être ajustée afin qu'elle revienne progressivement à 5 pour réaliser une reprise après panne.

Conclusion :
Cet article présente le mécanisme de basculement et de récupération dans la solution d'équilibrage de charge Nginx et donne des exemples de code spécifiques. En configurant correctement les mécanismes de basculement et de récupération, la disponibilité et les performances du système peuvent être améliorées. Dans les applications réelles, la méthode de configuration appropriée peut être sélectionnée en fonction de besoins et de scénarios spécifiques pour obtenir un effet d'équilibrage de charge optimal.

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