错误324由AWS托管的应用程序上的空响应

时间:2012-01-14 09:44:47

标签: php amazon-web-services

Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data.

我在我的amazon EC2服务器上收到此错误。这不会发生在我网站上的特定页面上。我不认为这是Chrome浏览器的错误,因为当我打开safari时我没有得到错误,我得到一个白页。不确定发生了什么或为什么。基本上,我正在寻找此服务器错误的根本原因。任何想法将不胜感激。如果您需要我提供任何具体信息,请告诉我。

想想看,当我们升级到mongo php驱动程序1.2.7时,这个错误就开始发生了。想法?

3 个答案:

答案 0 :(得分:4)

使用命令行中的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 :(得分:0)

只想记录我对这个绝对时间问题的回答。对我来说,curl显示了正确的HTML,但我的浏览器却没有。

我立即从AWS控制台为我的LoadBalancer禁用了Session Stickiness,现在它运行正常。

@Till的curl建议很棒:)

编辑:当您需要会话粘性时,如何在将来管理此问题?我不知道。但那里应该有答案!

答案 2 :(得分:0)

以防万一其他人看到这个问题而@Till的回答没有帮助。我想指出亚马逊的Elastic Load Balancer有60秒的硬编码超时。没有办法禁用它。

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

您需要在页面中添加“心跳”,以通过HTTP连接返回数据。 ELB会监控活动并使您的会话保持活跃状态​​。

对于某些应用程序来说,这可能是过分的,它完全删除了启动的任何php缓冲并将数据刷新到Web服务器。除此之外,还需要在Web服务器(apache或其他)上禁用GZIP。

该脚本返回相当大量的数据,大约64,000个单独空格。浏览器会忽略连续的单个空格,因此通常很容易配置页面以使用此功能而不会出现任何显示问题。

您也不需要经常调用此功能。你有60秒,我通常会尝试让我的每10到15秒运行一次,但是因为它确实睡了一秒钟,所以不要太频繁地调用它,否则你的页面会显着减慢。

这是功能:

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

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

@flush();
@ob_flush();

sleep(1); }