4

nginx にファイルをアップロードするために swfupload を使用しています。私とユーザーの 99% にとって問題なく動作します。ただし、数人のユーザーの場合、アップロード中に何らかの理由で失敗します。接続を開きますが、完了する前に閉じているようです - nginx はアクセス ログで 499 ステータスを報告します。これは NGX_HTTP_CLIENT_CLOSED_REQUEST です。

私は、それらのユーザーの 1 人を捕まえて、さらに情報を得ることができました。彼らは、Firefox 3.5.7 を搭載した XP で Flash 10.0.42 を実行しています。

誰もこのようなものを見たことがありますか?それを修正するための提案/さらに調査する方法はありますか?

-ジョナサン

4

3 に答える 3

1

ここで特に何も言われない場合に備えて、うまくいかないユーザーに尋ねたいことのリストを次に示します。

  • どのような種類のインターネット接続がありますか? (会社の) ファイアウォールの内側にいますか?

  • アップロードしようとしていたファイルの種類 (ファイルの種類とサイズ) そのファイルはどの媒体に保存されていましたか? (たとえば、CD からのアップロード時に読み取りエラーを除外するため)

  • OS のバージョン、ブラウザのバージョン、Flash のバージョン、インストールされているパーソナル ファイアウォールおよび/またはウイルス対策ソフトウェア (パターンを確認するため)

  • 2回目の試みでうまくいきましたか?

于 2010-01-25T10:24:27.100 に答える
1

499 エラーは、次の場合に発生します。

  • ユーザーはすべてのデータ (ファイルのアップロードを含む) をサーバーに正常に送信します
  • ユーザーが応答を得る前にリクエストをキャンセルする (つまり、ページを更新すると、現在のすべてのリクエストがキャンセルされます)
  • サーバー (nginx) はリクエストを取得し、それを正常に処理します (アップロードされたファイルを保存します)。下線のサーバーは 200 応答を返します。
  • Nginx は下線を引くサーバーから応答を取得しますが、(POST 要求のために) クライアントに応答を送信したい場合、クライアントは接続を閉じてしまいました! そのため、サーバーはクライアントに応答を渡すことができません。

したがって、499 エラーは、サーバーの観点からは正常なアップロードです! ただし、クライアントが応答を受信しないため、nginx はそれを 499 エラーとしてマークします。

于 2012-04-02T03:52:30.453 に答える
0

いくつかの可能性、

  • アップロードが完了する前に、ユーザーがページを更新しました。

  • アップロード中にユーザーのインターネット接続が切断されたか中断されました。

  • PHP を使用している場合 (私は推測しています)、php.ini で次の設定を確認してください。

max_execution_time

スクリプトの実行に時間がかかりすぎる場合、サーバーはこの設定に基づいてスクリプトを停止します。

max_file_uploads

ユーザーが一度にこの設定よりも多くのファイルをアップロードしようとすると、それが原因である可能性があります。

upload_max_filesize

いずれかのファイルがこの設定よりも大きい場合、ファイルはアップロードされません。これは、クライアント側でサーバーに到達する前に次のように処理できます。

申し訳ありませんが、具体的な情報がないため、これ以上絞り込むことはできません。

それがあなたのユーザーの 1% にしか影響を与えていない場合、それは私の意見では許容できます ;) 個人的には、クライアントでない限り、1% のバグを修正するのに時間を無駄にしません。

于 2010-01-31T15:15:35.733 に答える