ここに事があります:
ELBヘルスチェックシステムによって送信されているメッセージの種類が誰かにわかっている場合でも、バックエンドは標準のWebサーバーに基づいていないため、問題の解決策を探していません。これに関するドキュメントが見つからないためです。 、どこでも。
ヘルプは大歓迎です。ありがとうございました。
Amazon ELBには、カスタマイズ可能なヘルスチェックシステムがありますが、 こちら にあるように、自動チェックシステムもあります。
customizableを使用すると、おそらくAWSマネジメントコンソール( ヘルスチェック設定の構成 を参照)またはAPI( ConfigureHealthCheck )。
このように構成されたヘルスチェックに合格するための要件は、 HealthCheck データ型ドキュメントのフィールドTargetで概説されています。
チェックするインスタンスを指定します。プロトコルは、TCP、HTTP、HTTPS、またはSSLのいずれかです。有効なポートの範囲は1〜65535です。
注
TCPがデフォルトであり、TCP:ポートのペアとして指定されます(例: "TCP:5000")。この場合、ヘルスチェックは、指定されたポートのインスタンスへのTCP接続を開こうとするだけです。構成されたタイムアウト内に接続に失敗すると、異常と見なされます。
SSLは、SSL:ポートペアとしても指定されます(例:SSL:5000)。
HTTPまたはHTTPSプロトコルの場合、状況は異なります。pingパスを文字列に含める必要があります。 HTTPは、HTTP:port; /; PathToPing;として指定されます。グループ化、たとえば「HTTP:80/weather/us/wa/seattle」。この場合、HTTP GETリクエストは、指定されたポートとパスのインスタンスに発行されます。 タイムアウト期間内の「200 OK」以外の回答は異常と見なされます。
HTTP pingターゲットの全長は、1024個の16ビットUnicode文字以下にする必要があります。
[強調鉱山]
automaticでは、おそらく段落で説明されているヘルスチェックを参照していますCause内ヘルスチェックURLがAPIおよびコンソールに表示されるURLと異なるのはなぜですか? :
ロードバランサー用に構成したヘルスチェックに加えて、インスタンスによって引き起こされる潜在的な副作用から保護するために、サービスによって2番目のヘルスチェックが実行されます登録解除されることなく終了されます。このチェックを実行するために、ロードバランサーは、ヘルスチェックが使用するように構成されているのと同じポートでTCP接続を開き、ヘルスチェックの完了後に接続を閉じます。[強調鉱山]
段落Solutionは、ここではペイロードがゼロであることを明確にします。つまり、上記の構成可能なヘルスチェックについて説明した非HTTP/HTTPSメソッドに似ています。
この追加のヘルスチェックは、バックエンドインスタンスにデータを送信しないため、アプリケーションのパフォーマンスに影響を与えません。このヘルスチェックを無効にしたりオフにしたりすることはできません。
組み込みHTTPパーサーを備えたRESTful APIサーバーが実際にHTTPのみを提供すると想定されている場合、2つのヘルスチェックを処理する必要があります。
HTTP GET
リクエストし、200 OK
指定されたタイムアウト期間内に正常と見なされます。結論として、サーバーはすでに完全に正常に動作している可能性があり、2番目のヘルスチェックの動作に苛立ちを感じているようです-ELBは実際にサーバーが異常であると見なしていますか?
私が知る限り、それは200 OK HTTP応答を探す単なるHTTP GETリクエストです。