亚马逊EC2上的PHP脚本在浏览器上给出响应324


PHP script on Amazon EC2 giving response 324 on browser

我们有一个下载acsv文件的脚本。当我们在EC2控制台的命令行上运行这个脚本时,它运行得很好;下载文件并向用户发送成功消息。

但如果我们通过浏览器运行,我们会得到:

错误324(net::ERR_EMPTY_REPONSE):服务器关闭了连接,但未发送任何数据。

当我们签入备份文件下载时,它就在那里,但浏览器没有收到下载后发送的成功消息。

我们使用cURL通过身份验证从远程位置下载。该文件夹的用户组和所有权为"ec2用户",该文件夹拥有完整的权限,即777。

总之:文件已下载,但在浏览器端,我们没有得到任何数据或打印的成功消息。

附言:当下载的文件大小为8-9MB时,就会出现问题;如果它是一个较小的文件大小,比如1MB,它就可以工作。因此,脚本执行时间、下载文件大小或某些ec2实例配置会阻止它向浏览器发出响应。同样的脚本在我们的Godaddy Linux VPS上运行得非常好。我们已经更改了脚本的最大执行时间。

遗憾的是,这是一个已知的问题,没有一个好的解决方案。亚马逊论坛上有一条很长的帖子:https://forums.aws.amazon.com/thread.jspa?threadID=33427.那里提供的解决方案是发送一条保持活动的消息,以防止连接在60秒后断开。这不是一个很好的解决方案,但我认为除非亚马逊解决这个问题,否则没有更好的解决方案。考虑到该线程已经开放了3年,这似乎不太可能。