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

내 amazon EC2 서버에서이 오류가 발생합니다. 이것은 내 웹 사이트의 특정 페이지에서 발생하지 않습니다. Chrome 브라우저 버그라고 생각하지 않습니다. Safari를 열면 오류가 발생하지 않기 때문에 흰색 페이지가 표시됩니다. 무슨 일이 일어나고 있는지, 왜 있는지. 기본적으로이 서버 오류의 근본 원인을 찾고 있습니다. 어떤 아이디어라도 높이 평가할 수 있습니다. 특정 정보를 제공해야하는 경우 알려주십시오.오류 324 AWS에서 호스팅하는 응용 프로그램의 빈 응답

mongo php driver 1.2.7로 업그레이드했을 때이 오류가 발생했습니다. 생각?

+0

이 아마 아파치 세그먼트 오류입니다 :

여기 기능입니다. 아파치 오류 로그를 확인하십시오. – 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이 표시되었지만 내 브라우저는 그렇지 않았습니다.

AWS Console의 LoadBalancer에 즉시 Session Stickiness을 사용 중지했습니다. 이제는 정상적으로 작동합니다.

@ 틸 curl 조언 화려한 :)

편집이다 : 당신이 세션 고정을 필요로 할 때 당신은 어떻게 앞으로이 문제를 관리합니까? 나는 모른다. 그러나 거기에 이것에 대한 해답이 있어야합니다!

+1

감사합니다. ELB의 "세션 끈적 함"은 사용자를 항상 동일한 서버로 리디렉션하는 것을 의미합니까? 그렇다면 그런 것을 피하고 중앙 세션 저장소 (memcache 지속성을 위해 MySQL과 함께) 사용자를 최소한의 부하로 서버로 리디렉션합니다. – Till

0

다른 사람들이이 질문을보고 @ Till의 대답이 도움이 안되는 경우를 대비해서. 아마존의 Elastic Load Balancer에는 하드 코딩 된 60 초 제한 시간이 있습니다. 비활성화 할 방법이 없습니다.

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

당신은 HTTP 연결을 통해 데이터를 반환하는 "하트 비트"페이지를 추가해야합니다. ELB는 활동을 모니터하고 세션을 활성 상태로 유지합니다.

이것은 일부 응용 프로그램의 경우 배 밖으로 나갈 수 있으며, 시작된 모든 PHP 버퍼링을 완전히 제거하고 데이터를 웹 서버로 플러시합니다. 이 외에도 웹 서버 (Apache 또는 기타)에서 GZIP을 비활성화해야합니다.

스크립트는 약 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); } 
관련 문제