ヘルスチェック機能は、バックエンドサーバーが正常かどうかを判断するために使用されます。 ヘルスチェック例外が発生した場合、バックエンドサーバーは通常異常です。 この例外は、不適切なヘルスチェック設定も原因の場合があります。 このトピックでは、レイヤー7 (HTTP/HTTPS) リスナーのヘルスチェック例外のトラブルシューティング方法について説明します。
手順
- バックエンドサーバーがiptablesまたはその他のサードパーティのファイアウォールまたはセキュリティソフトウェアを介してCIDRブロック100.64.0.0/10をブロックしないことを確認します。
Server Load Balancer (SLB) は、予約済みCIDRブロック100.64.0.0/10のIPアドレスを使用してバックエンドサーバーと通信します。 CIDRブロックがブロックされると、ヘルスチェックの例外が発生し、SLBは正常に動作できません。
- バックエンドサーバーからバックエンドサーバー上の HTTP サービスにアクセスして、HTTP サービスが正常に機能するかどうかを確認します。
- SLBコンソールにログインし、リスナーの詳細ページでヘルスチェックの設定を確認します。この例では、HTTPリスナーが使用され、ヘルスチェック例外のあるバックエンドサーバーの内部IPアドレスは10.0.0.2です。 次のセクションでは、その他のヘルスチェック設定について説明します。
- 80ヘルスチェックポート:
- ヘルスチェックドメイン名:
www.slb-test.com - ヘルスチェックパス:
/test.html

- Linuxサーバーの場合は、ncまたはcurlコマンドを実行して、バックエンドサーバーのHTTPサービスをテストします。 ヘルスチェックパス、ヘルスチェックポート、ヘルスチェックドメイン名の設定が、HTTPサービスとバックエンドサーバーで同じであることを確認してください。 そうでなければ、ヘルスチェック例外が発生します。この例では、nc コマンドが使用されています。 実際の状況に応じて、ヘルスチェックパス、ヘルスチェックドメイン名、パブリックIPアドレス、ヘルスチェックポートを設定します。
echo -e "HEAD /test.html HTTP/1.0\r\nHost: www.slb-test.com\r\n\r\n" | nc -t 172.17.58.131 80- 通常の状態では、次の図に示すように、
200または2xx/3xxのステータスコードが返されます。
- SLBインスタンスのリスナー設定を変更せず、バックエンドサーバーから /test.htmlページを削除するとします。 次に、ncコマンドを実行すると、次の図に示すように、2xxまたは3xxの代わりにエラーコード404が返されます。 このエラーコードは、ヘルスチェック例外を示します。

- 通常の状態では、次の図に示すように、
- SLBコンソールにログインし、リスナーの詳細ページでヘルスチェックの設定を確認します。