Edited at

nginxで"client intended to send too large body"が発生した時の対策方法

More than 3 years have passed since last update.

nginx が稼働しているWebページで、フォームからファイルをアップロードしようとしたら、

"1 client intended to send too large body: 1367171 bytes" というエラーが発生しました。

これは、nginx が POST の最大サイズを超えるデータが送られてきた場合に発生するエラーのようです。

http://wiki.nginx.org/HttpCoreModule#client_max_body_size

によると、nginx ではデフォルトで1MBまでのデータしか受け付けないようです。

nginx が1MBより大きなデータを受け取れるようにするには、nginx.conf で client_max_body_size ディレクティブを設定します。

client_max_body_sizehttp, server, locationコンテキスト内で使用できます。


nginx.conf

http {

client_max_body_size 1048576; # default 1m

server {
client_max_body_size 100m;

location ~ ^/upload/ {
client_max_body_size 2g;
}
}
}