La vérification de l'état du serveur back-end et l'ajustement dynamique dans la solution d'équilibrage de charge Nginx nécessitent des exemples de code spécifiques
Résumé : Dans la solution d'équilibrage de charge Nginx, la santé du serveur back-end est une considération importante. Cet article expliquera comment utiliser le module de vérification de l'état et le module d'ajustement dynamique de Nginx pour implémenter la vérification de l'état et l'ajustement dynamique du serveur back-end, et donnera des exemples de code spécifiques.
Module de contrôle de santé
Nginx fournit un module de contrôle de santé qui peut détecter périodiquement l'état de santé du serveur backend. Ce module peut être configuré dans le serveur proxy inverse Nginx pour garantir que seuls les serveurs sains reçoivent du trafic. Voici un exemple de code :
http { upstream backend { server backend1.example.com; server backend2.example.com; health_check interval=5s; } server { location / { proxy_pass http://backend; } } }
Dans l'exemple ci-dessus, nous définissons un amont (c'est-à-dire un cluster de serveurs backend) nommé "backend" avec deux serveurs : backend1.example.com et backend2.example com. De plus, nous avons également configuré un module de vérification de l'état pour vérifier l'état de santé du serveur backend toutes les 5 secondes.
Module d'ajustement dynamique
Bien que le module de vérification de l'état puisse garantir que seuls les serveurs sains reçoivent du trafic, nous pouvons parfois avoir besoin d'ajuster dynamiquement la politique d'équilibrage de charge pendant que l'application est en cours d'exécution. Nginx fournit un module d'ajustement dynamique qui permet d'ajuster automatiquement le poids du serveur back-end en fonction de la charge du serveur. Voici un exemple de code :
http { upstream backend { server backend1.example.com weight=1; server backend2.example.com weight=1; dynamic_adjustment; } server { location / { proxy_pass http://backend; } location /adjust { dynamic_adjustment_status; # 输出当前后端服务器的权重信息 } } }
Dans l'exemple ci-dessus, nous avons défini un amont nommé "backend" et configuré deux serveurs backend : backend1.example.com et backend2.example.com. Le poids de chaque serveur est fixé à 1. De plus, nous avons également configuré un module d'ajustement dynamique et affiché les informations de poids du serveur backend actuel sous le chemin "/adjust".
Exemple complet
Ce qui suit est un exemple complet qui combine l'utilisation du module de vérification de l'état et du module d'ajustement dynamique :
http { upstream backend { server backend1.example.com; server backend2.example.com; health_check interval=5s; dynamic_adjustment; } server { location / { proxy_pass http://backend; } location /adjust { dynamic_adjustment_status; # 输出当前后端服务器的权重信息 } } }
Dans cet exemple, nous utilisons ensemble le module de vérification de l'état et le module d'ajustement dynamique pour garantir que uniquement sain Le serveur reçoit le trafic et ajuste dynamiquement le poids du serveur back-end en fonction de la charge du serveur.
Lien de référence :
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!