Position actuelle: Accueil> Derniers articles> Un guide complet pour configurer un serveur proxy Nginx dans Docker pour implémenter les contrôles de santé des services Web

Un guide complet pour configurer un serveur proxy Nginx dans Docker pour implémenter les contrôles de santé des services Web

M66 2025-07-09

L'importance de configurer un serveur proxy Nginx dans un conteneur Docker pour prendre en charge les vérifications de la santé des services Web

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.

Créer un Dockerfile d'image Nginx personnalisé

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;"

Personnalisez les fichiers de configuration Nginx pour implémenter le proxy et la vérification de la santé

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.

Écrivez un script de vérification de la santé pour obtenir la confirmation de l'état du service avant le démarrage

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

Construire et démarrer le conteneur Nginx

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.

Résumer

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.