Nginx がサーバーの生存状態をパッシブにチェックする詳細な説明

Nginx がサーバーの生存状態をパッシブにチェックする詳細な説明

Nginxはサーバーの稼働状況を受動的にチェックします

導入

定期的にヘルスチェックを送信して、アップストリーム グループ内の HTTP サーバーのヘルスを監視します。 Nginx は、アップストリーム サーバーを継続的にテストし、障害が発生したサーバーを回避し、回復したサーバーを負荷分散グループに正常に追加できます。

パッシブヘルスチェック

パッシブヘルスチェックでは、 Nginx はトランザクションの発生を監視し、失敗した接続の回復を試みます。それでもトランザクションを回復できない場合、 Nginx はサーバーを使用不可としてマークし、再度アクティブとしてマークされるまで一時的にリクエストの送信を停止します。

アップストリーム サーバーが利用不可としてマークされる条件は、upstreams ブロック内の server ディレクティブのパラメータを介して各アップストリーム サーバーに対して定義されます。

  • fail_timeout : サーバーが利用不可とマークされるまでに何回試行が失敗するか、またサーバーが利用不可とマークされる時間 (デフォルトは 10 秒) を設定します。
  • max_fails : サーバーが利用不可としてマークされるために、 fail_timeout期間中に発生する必要がある失敗した試行回数を設定します (デフォルトは 1 回)。

次の例では、Nginx は、サーバーにリクエストを送信できない場合、または 30 秒以内にサーバーから 3 回応答を受信しなかった場合、30 秒以内にサーバーを使用不可としてマークします。

アップストリームバックエンド{
    サーバー backend1.example.com;
    サーバー backend2.example.com max_fails=3 fail_timeout=30s;
}

: グループ内にサーバーが 1 つしかない場合、fail_timeout および max_fails パラメーターは無視され、サーバーは使用不可としてマークされることはありません。

サーバーの起動が遅い

最近復元されたサーバーは接続で簡単に圧倒され、サーバーが再び利用不可とマークされる可能性があります。スロー スタートを使用すると、アップストリーム サーバーは、復元または使用可能になった後に、重みを 0 から公称値まで徐々に復元できます。これは、アップストリーム サーバー ディレクティブのslow_startパラメータを使用して実行できます。

アップストリームバックエンド{
    サーバー backend1.example.com slow_start=30s;
    サーバー backend2.example.com;
    サーバー 192.0.0.1 バックアップ;
}

: グループ内にサーバーが 1 つしかない場合、 slow_startパラメーターは無視され、そのサーバーは使用不可としてマークされることはありません。スロースタートは、 NGINX Plus (ビジネス エディション) に特有のものです。

Nginx がサーバーの生存状態をパッシブにチェックする方法についての記事はこれで終わりです。Nginx がサーバーの生存状態をチェックする方法についてさらに詳しく知りたい場合は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • サーバー上で Nginx を使用して Springboot プロジェクトをデプロイする方法の詳細なチュートリアル (jar パッケージ)
  • nginx を使用して静的リソース サーバーを構築する方法

<<:  JavaScript実行メカニズムの詳細な紹介

>>:  iframeフレームはIEブラウザで白い背景を透明に設定します

推薦する

円形グラデーションプログレスバー効果を実現する CSS サンプルコード

実装のアイデア一番外側は大きな円(グラデーションカラー)グラデーションの円を覆うように、内側に半円を...

image/x-png の ContentType について

これにより、png ファイルのアップロードも不可能になりました (後で情報を調べたところ、レジストリ...

Linux ディレクトリ切り替え実装コード例

ファイルの切り替えは Linux でよく行われる操作です。Linux を初めて学ぶときに最初に触れる...

IE ブラウザの HTML ハック タグの概要

コードをコピーコードは次のとおりです。 <!--[if !IE]><!-->...

Jenkins の紹介と Docker で Jenkins をデプロイする方法

1. 関連概念1.1 Jenkins の概念: Jenkins は、使用されるプラットフォームに関係...

WindowsでcmdからDOSウィンドウに入り、MySQLデータベースにアクセスします。

1. win + R を押して cmd と入力し、DOS ウィンドウに入ります。 2. MySQL...

HTML コードを書くための 30 のヒント

1. HTMLタグは常に閉じる前のページのソース コードでは、次のような記述がよく見られます。 &l...

VUE+SpringBootはページング機能を実装します

この記事では主に、Vue + SpringBoot でページ分割されたリストデータを実装する方法を紹...

JavaScriptの基礎を学ぶ

目次1. JavaScriptを記述する場所2. JavaScriptでよく使われる入力文と出力文1...

JS におけるメモリと変数の保存についての詳細な説明

目次序文JSマジックナンバー数値の保存バイナリ変換方法なぜ 0.1 + 0.2 !== 0.3 なの...

動的なテーブル効果を実現するJavaScript

この記事では、動的なテーブル効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

Vueバインディングオブジェクトと配列変数を変更した後にレンダリングできない問題の解決策

プロジェクトシナリオ:ページ表示には <ul> タグがあります。リストデータを動的に表示...

Nginx SSL証明書設定エラーの解決策

1. はじめにWeb プロジェクトを Linux サーバーで公開する場合、SSL 証明書を構成する必...

mysql スケジュールタスク (イベント イベント) の詳細な説明

1. イベントの簡単な紹介イベントは、MySQL が特定の時間に呼び出す手続き型データベース オブジ...