この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
目次
Nginx の最大bodyサイズを設定する
nginx + php にて写真のアップロードを行おうとしたところ、「413 Request Entity Too Large」というエラーが発生。PHP の設定によるメモリの制限かと考えて、php.ini を確認したところ問題がなかったために、エラーの解決に手間取りました。
そこで今回は nginx + php で遭遇した 403 エラーを解消する際に調べた内容をメモとして残します。
「413 Request Entity Too Large」エラーの原因と対処法
413エラーの原因
調べてみたところ、nginx では受け付ける最大の body サイズが 1MB に設定されており、設定値を超過した際に413エラーがでるとのことでした。
参考として公式ページの抜粋とリンクを貼っておきます。
Syntax: client_max_body_size size;
Default: client_max_body_size 1m;
Context: http, server, location
Sets the maximum allowed size of the client request body, specified in the “Content-Length” request header field. If the size in a request exceeds the configured value, the 413 (Request Entity Too Large) error is returned to the client. Please be aware that browsers cannot correctly display this error. Setting size to 0 disables checking of client request body size.
〇nginx 公式サイトの「client_max_body_size」の説明ページへのリンク
https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size
413エラーの解決方法(client_max_body_size の設定)
原因で分かるように nginx の設定「client_max_body_size」を調整して、 nginx が受付可能な最大 body サイズを調整すれば良いことになります。
client_max_body_size を 64MB に変更した際のサンプル
1 2 3 4 5 6 7 8 9 |
server { listen 80; server_name example.com; root /home/example/htdocs/; index index.php index.html index.htm; client_max_body_size 64m; (省略) |