SWFUpload在上传时过早关闭连接(nginx 499)

时间:2010-01-22 10:38:51

标签: flash upload nginx swfupload

我正在使用swfupload将文件上传到nginx。它适合我和我99%的用户。 但是,对于几个用户来说,它在上传过程中会以某种方式失败。它打开一个连接,但似乎在它完成之前关闭它 - nginx在其访问日志中报告499状态,即NGX_HTTP_CLIENT_CLOSED_REQUEST。

我设法抓住其中一个用户以获取更多信息。他们使用Firefox 3.5.7在XP上运行Flash 10.0.42。

有没有人见过这样的东西?有关修复它/我可能如何进一步调查的任何建议吗?

-Jonathan

3 个答案:

答案 0 :(得分:1)

如果这里没有具体的内容,这里列出了一些我会问用户不能解决的问题。

  • 您有什么样的互联网连接?你是否在(公司)防火墙后面?

  • 您尝试上传哪种文件(文件类型和大小)?该文件存储在什么媒体上? (例如,从CD上传时排除读取错误)

  • 安装操作系统版本,浏览器版本,Flash版本,个人防火墙和/或防病毒软件(以检查模式)

  • 第二次尝试有效吗?

答案 1 :(得分:1)

在以下情况下发生499错误:

  • 用户成功将所有数据(包括上传文件)发送到服务器
  • 用户在收到回复之前取消请求(即刷新页面,所有当前请求都将被取消)
  • 服务器(nginx)获取请求并成功处理它(保存上传的文件)。下划线服务器返回200响应。
  • Nginx从下划线服务器获得响应,但是当想要向客户端发送响应时(对于POST请求),客户端已关闭连接并且已经消失!因此服务器无法将响应传递给客户端。

因此,从服务器的角度来看,499错误是成功上传!但是因为客户端没有收到任何响应,nginx将其标记为499错误。

答案 2 :(得分:0)

一些可能性,

  • 用户在上传完成之前刷新了页面。

  • 用户的互联网连接在上传过程中被切断或打嗝。

  • 如果您正在使用PHP(我猜),请检查您的php.ini中的以下设置。

<强>的max_execution_time

如果脚本执行时间过长,服务器将根据此设置将其停止。

<强> max_file_uploads

如果用户尝试一次上传多于此设置的文件,则可能是原因。

<强>的upload_max_filesize

如果任何文件大于此设置,则不会上传文件。这可以在它通过以下方式到达客户端服务器之前处理:

很抱歉,但没有更具体的信息,我无法进一步缩小范围。

如果它仅影响1%的用户,我认为这是可以接受的;)就个人而言,除非是客户,否则我不会浪费时间修复1%的错误。