Maison  >  Article  >  développement back-end  >  Comment configurer le serveur proxy Nginx dans le conteneur Docker pour prendre en charge la vérification de l'état du service Web ?

Comment configurer le serveur proxy Nginx dans le conteneur Docker pour prendre en charge la vérification de l'état du service Web ?

王林
王林original
2023-09-06 08:09:221187parcourir

Comment configurer le serveur proxy Nginx dans le conteneur Docker pour prendre en charge la vérification de létat du service Web ?

Comment configurer le serveur proxy Nginx dans le conteneur Docker pour prendre en charge le contrôle de santé du service Web ?

Lors de l'utilisation de conteneurs Docker pour déployer des services Web, afin de garantir la haute disponibilité et la stabilité du service, il est généralement nécessaire de configurer des contrôles de santé pour détecter et gérer les pannes en temps opportun. En tant que serveur proxy inverse hautes performances, Nginx est très pratique et pratique pour configurer des contrôles de santé dans les conteneurs Docker. Cet article explique comment configurer le serveur proxy Nginx dans un conteneur Docker pour prendre en charge la vérification de l'état des services Web.

Les étapes sont les suivantes :

1. Créez un fichier Docker

Vous devez d'abord créer un fichier Docker pour créer le conteneur Nginx. Dans le fichier, ajoutez le contenu suivant :

FROM nginx

# 将自定义的配置文件复制到容器中
COPY nginx.conf /etc/nginx/nginx.conf

# 将健康检查脚本复制到容器中
COPY check.sh /etc/nginx/check.sh

# 添加执行权限
RUN chmod +x /etc/nginx/check.sh

# 设置容器启动时执行的命令
CMD /etc/nginx/check.sh && nginx -g "daemon off;"

2. Créez un fichier de configuration Nginx personnalisé

Créez un fichier de configuration Nginx personnalisé nginx.conf selon vos besoins. Ce fichier détermine la configuration des règles de proxy et des vérifications de l'état de Nginx.

user  nginx;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    upstream backend {
        server app1:8080;
        server app2:8080;
    }

    server {
        listen 80;
        server_name localhost;

        location / {
            proxy_pass http://backend;
        }

        location /health {
            return 200;
        }
    }
}

Dans le fichier de configuration, nous utilisons un simple amont qui définit deux services backend, où app1 et app2 sont respectivement les noms de conteneur des deux services backend. Dans location/health, nous définissons un chemin de vérification de l'état. Lorsque la requête renvoie 200, cela prouve que le service est normal.

3. Créer un script de contrôle de santé

Dans les conteneurs, il est courant d'effectuer des contrôles de santé via des scripts. Créez un fichier nommé check.sh dans le conteneur et ajoutez le contenu suivant :

#!/bin/bash

# 要检查的服务器地址
HOST=localhost
# 要检查的服务器端口
PORT=80

# 循环检查服务是否正常,直到服务启动成功或超过最大重试次数
for i in {1..10}
do
    # 请求服务的健康检查路径,并获取返回的HTTP状态码
    STATUS=$(curl -LI "$HOST:$PORT/health" -o /dev/null -w '%{http_code}
' -s)

    # 如果HTTP状态码为200,证明服务正常,退出脚本
    if [ $STATUS -eq 200 ]; then
        echo "Health check passed, Nginx is up and running."
        exit 0
    fi

    echo "Waiting for Nginx to start..."
    sleep 1
done

# 如果超过重试次数,打印错误信息并退出脚本
echo "Health check failed, Nginx failed to start."
exit 1

4. Créez et exécutez le conteneur Nginx

Après avoir terminé les étapes ci-dessus, utilisez la commande suivante pour créer et exécuter le conteneur Nginx :

docker build -t my-nginx .
docker run -d -p 8080:80 --name my-nginx-container my-nginx

Avec la commande ci-dessus, nous avons construit une image nommée my-nginx et exécuté un conteneur nommé my-nginx-container.

Résumé

Grâce aux étapes ci-dessus, nous avons configuré avec succès le serveur proxy Nginx dans le conteneur Docker et ajouté la fonction de vérification de l'état. En envoyant régulièrement des requêtes HTTP au chemin de vérification de l'état, nous pouvons déterminer si le service fonctionne correctement. Cette configuration peut grandement améliorer la disponibilité et la stabilité des services Web. Si nécessaire, davantage de configurations et d'optimisations peuvent être effectuées en fonction des besoins réels.

J'espère que cet article vous aidera à configurer le serveur proxy Nginx dans le conteneur Docker pour prendre en charge le contrôle de santé des services Web !

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