Avec la vulgarisation du déploiement conteneurisé, garantissant que le fonctionnement stable des services Web est devenu particulièrement critique. En configurant un mécanisme de contrôle de santé, vous pouvez surveiller l'état du service en temps réel, gérer les anomalies en temps opportun et améliorer la haute disponibilité du système global. En tant que serveur proxy inversé populaire, Nginx configure les contrôles de santé dans l'environnement Docker pour surveiller efficacement l'état de santé des services back-end.
Tout d'abord, vous devez écrire un Dockerfile pour créer une image Nginx qui contient des scripts de configuration et de contrôle de santé personnalisés. Le contenu est le suivant:
De nginx # Copiez le fichier de configuration personnalisé dans la copie de conteneur nginx.conf /etc/nginx/nginx.conf # Copiez le script Health Check dans la copie de conteneur Check.sh /etc/nginx/check.sh # Ajouter des autorisations d'exécution Exécuter Chmod + x /etc/nginx/check.sh # Définissez la commande cmd /etc/nginx/check.sh && nginx -g "Daemon off;"
Créez un fichier nginx.conf, configurez le proxy inversé et le chemin de vérification de la santé. Les exemples sont les suivants:
utilisateur nginx; Worker_Processes 1; événements { Worker_Connections 1024; } http { Backend en amont { Server App1: 8080; Server App2: 8080; } serveur { Écoutez 80; server_name localhost; emplacement / { proxy_pass http: // backend; } Emplacement / santé { retour 200; } } }
Parmi eux, le backend en amont définit deux conteneurs de services backend, et le chemin de la santé / la santé renvoie le code d'état 200, indiquant que le service est normal.
Vérifiez si le service Nginx est démarré avec succès via la boucle de script Check.sh. Le code est le suivant:
#! / bin / bash # L'adresse du serveur à vérifier hôte = localhost # Le port du serveur à vérifier le port = 80 # Vérifiez si le service est normal jusqu'à ce que le service commence avec succès ou dépasse le nombre maximum de tentatives pour I dans {1..10} faire # Demande le chemin de vérification de la santé du service et obtenez le code d'état HTTP renvoyé Status = $ (curl -li "$ hôte: $ port / santé" -o / dev / null -w '% {http_code}' -s) # Si le code d'état HTTP est de 200, il prouve que le service est normal, quittez le script si [$ status -eq 200]; alors Écho "Le contrôle de santé a réussi, Nginx est opérationnel." sortie 0 FI Echo "En attendant que Nginx commence ..." sommeil 1 fait # Si le nombre de Reryn dépasse le nombre de réessayer, imprimez le message d'erreur et quittez l'écho du script "La vérification de la santé a échoué, Nginx n'a pas réussi à démarrer." sortie 1
Exécutez la commande suivante pour construire l'image et exécuter le conteneur:
docker build -t my-nginx. docker run -d -p 8080: 80 - nom my-nginx-container my-nginx
Cela créera une image appelée My-Nginx et démarrera une instance de conteneur qui mappe le port hôte 8080 au port de conteneur 80.
Grâce à Dockerfile personnalisé, aux fichiers de configuration Nginx et aux scripts de vérification de la santé, la surveillance de la santé des services Web back-end par serveur proxy Nginx dans le conteneur Docker est réalisé. Cette configuration améliore non seulement la stabilité du service, mais facilite également l'expansion et la maintenance ultérieures. Il est recommandé d'améliorer encore la logique d'inspection de la santé et la stratégie d'équilibrage des charges basée sur les besoins réels de l'entreprise.