コンテナ化された展開の普及により、Webサービスの安定した操作が特に重要になるようにします。ヘルスチェックメカニズムを構成することにより、サービスステータスをリアルタイムで監視し、異常をタイムリーに処理し、システム全体の高可用性を向上させることができます。人気のあるリバースプロキシサーバーとして、NGINXはDocker環境で健康チェックを構成して、バックエンドサービスの健康状態を効果的に監視します。
まず、カスタム構成とヘルスチェックスクリプトを含むnginxイメージを構築するために、dockerfileを作成する必要があります。コンテンツは次のとおりです。
nginxから #カスタム構成ファイルをコンテナにコピーしますnginx.conf /etc/nginx/nginx.confをコピーします #ヘルスチェックスクリプトをコンテナにコピーするコピーcheck.sh /etc/nginx/check.sh #実行権限を追加して、chmod +x /etc/nginx/check.shを実行します #コマンドcmd/etc/nginx/check.sh && nginx -g "daemon off;"を設定します。
nginx.confファイルを作成し、逆プロキシとヘルスチェックパスを構成します。例は次のとおりです。
ユーザーnginx; worker_processes 1; イベント{ worker_connections 1024; } http { 上流のバックエンド{ サーバーAPP1:8080; サーバーAPP2:8080; } サーバー{ 匂いく80; server_name localhost; 位置 / { proxy_pass http:// backend; } 場所 /健康{ 200を戻るします。 } } }
その中で、アップストリームバックエンドは2つのバックエンドサービスコンテナを定義し、ヘルスチェックパス/ヘルスはステータスコード200を返し、サービスが正常であることを示します。
NginxサービスがCheck.shスクリプトループを介して正常に開始されるかどうかを確認します。コードは次のとおりです。
#!/bin/bash #チェックされるサーバーアドレス= localhost #チェックされるサーバーポート= 80 #サービスが普通に始まりめるされるか、{1..10}のIの最大RETRIRESの最大数を追い越しますえるまで、サービスが普通かどうかを確認します する #サービスのヘルスチェックパスをリクエストし、戻るされたHTTPステータスコードステータス= $(curl -li "$ host:$ port/health" -o/dev/null -w '%{http_code}' -s)を得るします。 #HTTPステータスコードが200の場合、サービスが普通であることが証明されます。[$ status -eq 200]の場合、スクリプトを終わり了します。それから エコー「ヘルスチェックが合格し、nginxは稼働しています。」 出口0 fi エコー「nginxが始まりまるのを扱うっています...」 寝る1 終わりわり #もう一度やり直してくださいの数がもう一度やり直してくださいの数を追い越しますえた場合、エラーメッセージを印刷してスクリプトを終わり了します。 終わり了1
次のコマンドを実行して画像を作成し、コンテナを実行します。
docker build -t my -nginx。 docker run -d -p 8080:80 - 名前my-nginx-container my-nginx
これにより、 My-Nginxという画像が作成され、ホストポート8080をコンテナポート80にマッピングするコンテナインスタンスを起動します。
カスタムDockerFile、Nginx構成ファイル、およびヘルスチェックスクリプトを通じて、Dockerコンテナ内のNginx Proxy ServerによるバックエンドWebサービスのヘルスモニタリングが実現されます。この構成は、サービスの安定性を改善するだけでなく、その後の拡張とメンテナンスを促進します。実際のビジネスニーズに基づいて、健康検査の論理と負荷分散戦略をさらに改善することをお勧めします。