2012-01-14 23 views
5
Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data. 

私のamazon EC2サーバーでこのエラーが発生しています。これは私のウェブサイトの特定のページでは起こりません。私はそれがChromeブラウザのバグだとは思わない。なぜなら、私がサファリを開くとエラーが出ないので、私は白いページを取得するからだ。何が起きているのか、なぜ起こっているのかわからない。基本的に、私はこのサーバーエラーの根本原因を探しています。どんなアイデアも高く評価されます。特定の情報を提供する必要がある場合は、私に知らせてください。エラーAWSでホストされているアプリケーションの空の応答

mongo php driver 1.2.7にアップグレードしたときに、このエラーが発生し始めたと思います。思考?

+0

これはおそらく、Apacheのセグメンテーションフォールトです。 Apacheのエラーログを確認してください。 – CappY

答えて

3

トラブルシューティングcurlでコマンドラインから。例えば、http://aws.amazon.com/

$ curl -i http://aws.amazon.com/ 
HTTP/1.1 200 OK 
Date: Tue, 08 May 2012 19:55:14 GMT 
Server: Server 
x-amz-id-1: 0C8YK9MYJMCCSE8R09E5 
x-amz-id-2: zx0HtU9Ub39tobXNBiMRLuE2mvnhQo4Kh1fyj0MdJcg= 
Cache-Control: max-age=0 
Expires: Tue, 08 May 2012 19:55:14 GMT 
Content-Type: text/html; charset=UTF-8 
Set-cookie: aws-session-id-time=2082758401l; path=/; domain=.amazon.com; expires=Tue, 01-Jan-2036 00:00:01 GMT 
Set-cookie: aws-session-id=000-0000000-0000000; path=/; domain=.amazon.com; expires=Tue, 01-Jan-2036 00:00:01 GMT 
Vary: User-Agent 
Transfer-Encoding: chunked 
... 
-i

ヘッダーを含みます。実際のステータスコードが表示され、access_logerror_logとの関連付けが必要です。 :)

これが役立つかどうかお知らせください。

+1

私は同じ問題を抱えています。 CURLを除いて、HTMLはうまく表示されますが、ブラウザにはロードされません。 – Angad

+0

クッキー?セッション?あなたの質問はかなりあいまいなので、何か分かりません。デバッガを使用することもできます(Chromeでは:CMD + Option + J)とブラウザで何が表示されるのかを確認してください – Till

0

私はこの問題を絶対に時間切れにしたいと思っています。私のためにcurlは正しいHTMLを示しましたが、私のブラウザはそうではありませんでした。

すぐに私のLoadBalancerのAWS ConsoleからSession Stickinessを無効にしました。今はうまくいきます。

@さんティルcurlアドバイスは素晴らしい:)

編集です:あなたは、セッションのスティッキ性を必要とするとき、どのようにあなたが将来的にこの問題を管理するのですか?何も思いつきません。しかし、そこにこれに関する答えがあるはずです!

+1

ELBの「セッションスティッキーネス」は、ユーザーを同じサーバーにリダイレクトすることを指していますか?そういう場合は避け、中央セッションストア(memcache永続性のためにMySQLを使用して)、負荷の最も少ないサーバにユーザをリダイレクトします。 – Till

0

他の誰かがこの質問を見て、@ Tillの答えが役に立たなかった場合に備えて。 AmazonのElastic Load Balancerに60秒のタイムアウトがハードコードされていることを指摘したいと思います。無効にする方法はありません。

https://forums.aws.amazon.com/thread.jspa?threadID=33427&start=0&tstart=50

あなたは、HTTP接続を介してデータを返すために、「ハートビート」ページを追加する必要があります。 ELBはアクティビティを監視し、セッションを有効にします。

これはいくつかのアプリケーションでは船外であり、開始されたすべてのPHPバッファリングを完全に削除し、データをWebサーバーにフラッシュします。これに加えて、GZIPはWebサーバー(Apacheなど)で無効にする必要があります。

このスクリプトはかなり大量のデータを返します。約64,000の単一スペースです。連続した単一のスペースはブラウザによって無視されるので、通常は表示を心配せずにこの機能を使用するようにページを設定するのは簡単です。

この機能を非常に頻繁に呼び出す必要はありません。あなたは60秒ありますが、私は通常、10秒から15秒ごとに実行しようとしますが、1秒間スリープするので、頻繁に呼び出さないでください。そうしないと、ページが大幅に遅くなることがあります。ここで

機能です:

function ELB_HeartBeat(){ 
echo str_repeat(' ',1024*64); 

ob_implicit_flush(true); 
while (@ob_end_flush()); 

@flush(); 
@ob_flush(); 

sleep(1); } 
関連する問題