ホームページ  >  記事  >  運用・保守  >  Nginxサーバーヘルスチェック構成を実装する方法

Nginxサーバーヘルスチェック構成を実装する方法

WBOY
WBOYオリジナル
2023-11-08 10:39:351198ブラウズ

Nginxサーバーヘルスチェック構成を実装する方法

Nginx サーバーのヘルス チェック構成を実装するには、特定のコード サンプルが必要です

Nginx は、高性能 Web サーバーおよびリバース プロキシ サーバーです。サーバーの高可用性と健全性状態の監視がますます重要になっています。この記事では、サーバーの健全性チェックを実装するために Nginx を構成する方法を紹介し、具体的なコード例を示します。

1. サーバー ヘルス チェックの原理

ヘルス チェックを実行する場合、Nginx は主にバックエンド サーバーに HTTP リクエストを送信することでサーバーの健全性状態を検出します。サーバーがリクエストに正常に応答した場合 (ステータス コードが 2xx)、サーバーは正常であると見なされ、リクエストをサーバーに転送し続けます。サーバーが応答しない場合 (タイムアウトまたはステータス コードが 5xx)、サーバーは使用できないとみなされます。サーバーが再び利用可能になるまで、サーバーへのリクエストの転送が停止されます。

2. ヘルスチェックの設定

1. アップストリームの設定

ヘルスチェックは通常、アップストリーム設定ブロックで実行されます。アップストリームは、一連のバックエンド サーバーを定義し、これらのサーバーにリクエストを分散する役割を担う Nginx モジュールです。以下は簡単なアップストリーム設定の例です:

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

2. ヘルス チェック パラメータの設定

アップストリーム設定ブロックでは、いくつかのパラメータを追加することでヘルス チェックの動作を設定できます。たとえば、チェック間隔、最大失敗数、タイムアウトなどを指定できます。一般的に使用されるヘルス チェック パラメーターの例を次に示します。

upstream backend {
    server backend1.example.com max_fails=3 fail_timeout=30s;
    server backend2.example.com max_fails=3 fail_timeout=30s;
    server backend3.example.com max_fails=3 fail_timeout=30s;
}

上記の構成では、max_fails は失敗の最大数を指定し、fail_timeout はタイムアウトを指定します。サーバーが連続失敗の最大回数を超えて失敗すると、そのサーバーは利用できないとみなされ、Nginx はサーバーへのリクエストの転送を行わなくなり、タイムアウト期間中サーバーへのリクエストの転送を一時停止します。

3. ヘルス チェック リクエストの構成

Nginx は、バックエンド サーバーに HTTP リクエストを送信することでヘルス チェックを実行します。ヘルスチェックは、ロケーションブロックを定義し、ヘルスチェックリクエストのパスと応答コードを構成することで実装できます。ヘルスチェックリクエストの設定例を次に示します。

location /healthcheck {
    proxy_pass http://backend;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
}

上記の設定では、/healthcheck はヘルスチェックリクエストのパスで、proxy_pass はチェックリクエストを転送するターゲットサーバーを指定します。

4. ヘルスチェックステータスの設定

Nginx は、proxy_next_upstream ディレクティブを通じてヘルスチェックステータスを設定します。すべてのサーバーが利用できない場合、カスタム応答コードを返すように Nginx を構成するか、クライアントにエラー ページを直接返すことができます。ヘルスチェックステータスの設定例は以下のとおりです。

http {
    upstream backend {
        server backend1.example.com max_fails=3 fail_timeout=30s;
        server backend2.example.com max_fails=3 fail_timeout=30s;
        server backend3.example.com max_fails=3 fail_timeout=30s;
        check interval=5s rise=2 fall=3 timeout=2s;
    }

    server {
        listen 80;
        server_name example.com;

        location /healthcheck {
            proxy_pass http://backend;
            proxy_http_version 1.1;
            proxy_set_header Connection "";
        }

        error_page 502 = /custom_502.html;
        location = /custom_502.html {
            root /usr/share/nginx/html;
            internal;
        }

        proxy_next_upstream error timeout invalid_header http_502;
    }
}

上記の設定では、check interval はチェック間隔、rise は連続成功回数、fall は連続失敗回数、timeout はチェック間隔を指定します。タイムアウト。これらのパラメータは、ヘルスチェックの動作を構成するために使用されます。

上記の設定により、Nginx サーバーのヘルスチェックを実装できます。

要約: サーバーのヘルスチェックは、サービスの高可用性を確保するための鍵です。 Nginx のヘルス チェック パラメータとリクエストを構成することで、バックエンド サーバーのヘルス ステータスを効果的に監視し、サーバーが使用できなくなった場合にサーバーへのリクエストの転送を自動的に停止できます。この記事で説明した具体的な構成例がお役に立てば幸いです。

以上がNginxサーバーヘルスチェック構成を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。