2017-05-10 8 views
1

どのエラーで問題が発生するのか分かりません。私が見たとき、サーバーがダウンしてGoogle Chromeのログでエラー503であり、私は次のようなエラーがあります。私のAmz EC2サーバーが毎日何分もダウンするのはなぜですか?エラー503と502です。これはRailsアプリケーションです

503 Service Unavailable: Back-end server is at capacity 

をサーバがダウンしている間、私はエラーを見るためにSSH経由で接続することができませんログ。数分後にサーバが動作し、nginxエラーログに行きます。ログで

、私は次のように、一般的なエラーを持っている:

ActiveRecord::RecordNotFound (Couldn't find Attachment with 'id'=4240) 

私が解決する方法を知っていると私は、このエラーは問題ではないと思われます。

しかし、私は、あまりにもこのエラーを持っている:

Sending 502 response: application did not send a complete response 
Process (pid=31880, group=/home/ubuntu/........./current/public) no longer exists! Detaching it from the pool. 

は、私はそれが問題であると思いますが、私はインターネットで見て、原因と解決策は、問題を解決するためには表示されません。

この問題は、ロードバランサを作成してHTTPSを使用した後に発生します。 以前、この問題は発生しませんでした。

Amazon Ec2 instance; 
Using Classic Load Balancer (with Amazon Certificate Manager in https port); 
Using Route 53; 
Don't using Elastic IP; 
OS: Ubuntu 14.04.2 LTS 
ruby -v: 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux] 
rails -v: Rails 4.2.3 
nginx -v: nginx/1.8.0 
passenger -v: Phusion Passenger version 5.0.10 

ロードバランサのヘルスチェックは、このように設定されています:私はロードバランサで、このプリントを得る

Ping Target 
HTTP:80/index.html 
Timeout 5 seconds 
Interval 30 seconds 
Unhealthy threshold 5 
Healthy threshold 5 

ヘルス情報をチェック私のサーバーとアプリについて

[監視]タブをクリックします。 不健全なホスト(数)です。なぜ私のホストは不健康だったのですか?

enter image description here

+1

一般的に、バックエンドサーバーが処理できるリクエストより多くのリクエストを受け取っていることを意味します。これはロードバランサによってサーバまたはnginxを乗客にバックエンドするために生成される可能性があります。 – datasage

+0

@datasageあなたの答えをありがとう。ロード・バランサでリクエストを確認する方法やリクエストの制限を変更する方法はわかりません。 nginxでも。あなたは知っていますか?あなたの投稿情報に基づいてGoogleで検索します。 –

+1

ロードバランサのメトリックによって、エラーがロードバランサまたはバックエンドから発生しているかどうかが判断されます。不健康なホストを取得すると、ヘルスチェックが失敗したことを意味します。 – datasage

答えて

0

SOLUTION

私の場合は、問題が資産プリコンパイル作業中でした。 私のアプリにはたくさんの資産があります。私はcapistranoでデプロイしたときにサーバを使い果たします。

ページの読み込み中に、アセットがデプロイ後にプリコンパイルされることがありました。しかし、このタスクは非常にゆっくりで、エラー502,503,504を返します。

CPU使用率が100%になるため、サーバーがダウンする原因になるため、平均待ち時間も長くなります。

解決するために、私はCapistranoからassets precompile taskを削除しました。私は自分のローカルPCの資産をプリコンパイルし、GITブランチMASTERにそれらのすべてを送ります。 cap production deployを実行すると、プリコンパイル・タックは実行されません。詳細はthis postです。私は、サーバー上のタスクにassets precompile決してより多くの実行を願っています。これにより

Ping Target HTTP:80/elb/index.html (I created in pubic folder this folder and file) 
Timeout 5 seconds 
Interval 30 seconds 
Unhealthy threshold 2 
Healthy threshold 10 

Idle timeout: 65 seconds (equal my nginx timeout) 

は、私は私のロードバランサのヘルスチェックの設定でいくつかの変更をしました。

関連する問題