nginx / ruby-on-railsを実行していますが、ファイルをアップロードするためのシンプルなマルチパートフォームがあります。アップロードするファイルの最大サイズを制限するまで、すべてが正常に機能します。そのために、私はnginx client_max_body_size
を1m(1MB)に設定し、そのルールが破られたときの応答としてHTTP 413(リクエストエンティティが大きすぎます)ステータスを予期します。
問題は、HTTP 413エラーページを表示する代わりに1.2 MBのファイルをアップロードすると、ブラウザが少しハングし、「ページのロード中に接続がリセットされました」というメッセージが表示されて停止することです。
私はnginxが提供するオプションのほとんどすべてを試しましたが、何も機能しないようです。誰かこれについて何か考えがありますか?
ここに私のnginx.confがあります:
worker_processes 1;
timer_resolution 1000ms;
events {
worker_connections 1024;
}
http {
passenger_root /the_passenger_root;
passenger_ruby /the_ruby;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.x.com;
client_max_body_size 1M;
passenger_use_global_queue on;
root /the_root;
passenger_enabled on;
error_page 404 /404.html;
error_page 413 /413.html;
}
}
ありがとう。
**Edit**
環境/ UA:Windows XP / Firefox 3.6.13
Content-Length
ではなく送信することを前提としていることを指摘しておきますTransfer-Encoding: chunked
。