nginx

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;
        }
    }
}