47

複数のインスタンス間でリクエストを分割するために、AWS でElastic Load Balancing (ELB)をセットアップしようとしています。同じ AMI に基づいて Web サーバーのイメージをいくつか作成しました。それぞれに個別に SSH 接続し、それぞれのパブリック DNS を介してサイトにアクセスできます。

Status: Out of Service各インスタンスをロード バランサーに追加しましたが、ヘルス チェックに失敗したため、すべて戻ってきます。パブリック DNS から各インスタンスにアクセスできるため、ほとんど混乱していますが、ロード バランサーの DNS 名にアクセスするたびにタイムアウトが発生します。

私はすべてのドキュメントを読んでグーグルで検索しようとしましたが、行き詰まっています。正しい方向へのポインタやリンクは大歓迎です。

4

13 に答える 13

24

この同じ問題について AWS サポートに連絡しました。どうやら彼らのシステムは、ELB の背後にあるすべてのインスタンスが長時間停止した場合の処理​​方法を認識していません。ステータスがすぐに必要な場合は、AWS サポートがステータスを手動で更新できます。

提案された修正は、EC2 インスタンスを単に停止して再起動するときに再登録するのではなく、ELB から登録解除することです。

于 2013-04-16T04:48:33.560 に答える
19

ヘルスチェックは(デフォルトでは)ロードバランサーに組み込まれた各インスタンスの index.html にアクセスすることで行われます。インスタンスのドキュメント ルートに index.html がない場合、デフォルトのヘルス チェックは失敗します。エラスティック ロード バランサーを作成するときに、ヘルス チェック用のカスタム プロトコル、ポート、およびパスを設定できます。

于 2011-08-26T07:47:34.890 に答える
11

最後に、これを機能させました。ポート 80 へのアクセスを開発エリアの少数のマシンに制限し、ロード バランサーがインスタンスの Apache サーバーにアクセスできなかったため、問題はAmazon セキュリティ グループにありました。ロードバランサーがインスタンスにアクセスできるようになると、In Serviceになります。

インスタンスでチェックしてtail -f /var/log/apache2/access.log、ロードバランサーがサーバーにアクセスしようとしているかどうかを確認し、サーバーがロードバランサーに提供している応答を確認しました。

お役に立てれば。

于 2013-12-09T11:28:49.220 に答える
0

Web アプリケーションのホスティングに関する AWS チュートリアルに取り組んでいたときに、この問題に遭遇しました。ステップ 7bには、次のように記載されています。

「Ping パスを / に設定します。これにより、index.html などの名前のデフォルト ページにクエリが送信されます。」

この「/」のようにスラッシュを引用符で囲むこともできます。この「/」ではなく、ヘルスチェックにそれがあることを確認してください。.

于 2015-08-07T22:57:12.050 に答える
0

この問題を解決するための一般的な方法を提供したいと思います。Apache や nginx などの Web サーバーをセットアップしたら、アクセス ログ ファイルを読み取って、何が起こったかを確認してください。私の場合、401 errornginxに基本認証を追加したため、報告されます。もちろん、@ivankoni が思い出したように、チェックしたドキュメントが存在しないことが原因である可能性があります。

于 2015-06-15T07:28:15.703 に答える
0

同様の問題がありました。この問題は、HTTP ヘルス チェックを使用し、サイトをパスワード保護するために .htaccess を使用したために発生したようです。

于 2018-03-04T01:42:40.707 に答える
0

これがリストされていないので、このスレッドを見ている他の人のために:

ヘルスチェックが、応答サーバーがリッスンしているポートをチェックしていることを確認します。

たとえば、ポート 3000 で実行されている node.js -> ヘルスチェックをポート 3000 にポイントします。

ポート 80 または 443 ではありません。これらは、ALB が使用するものです。

私はこれで朝を過ごしました。はい。

于 2019-08-15T11:23:31.410 に答える