Nginxで「413 Request Entity Too Large」エラー。その対策

nginxで413エラー! サーバー

WordPressでテーマのzipファイルをアップロードしようとした際にブラウザで「413 Request Entity Too Large」エラーが発生。

Nginxの「413 Request Entity Too Large」エラー

さっそく対策します。

■動作確認環境
CentOS 7.7
Nginx 1.16.1

原因

WEBサーバ(Nginx)のデフォルト設定のアップロードファイルのサイズ上限(リクエストボディのデータ量の上限)に引っ掛かりエラーが出ていました。

Nginxでは、デフォルトのリクエストボディのデータ量の上限は1MBとなっていますので、設定を変更して上限を緩和しないとテーマのアップロード時などはエラーが出てしまいます。

対策

nginx.conf 又は 各ドメイン用の.conf 内に以下の1行を追加する。(※今回は最大10MBまでに設定)

その後にNginxのリロード又は再起動でOKです。

ちなみに、「上限無し」の場合は、

と設定します。

■Nginxのサーバ全体に対応させる場合

vi等で /etc/nginx/nginx.conf を開く

nginx.confのhtppディレクティブ内に「client_max_body_size」を設定する

keepalive_timeout の下あたりが無難です。

変更後にNginxを再起動。

※php-fpmを利用している場合はphp-fpmも再起動しましょう。

以上で完了です。

■ドメインごとに設定する場合

vi等で各ドメイン用の.confファイルを開く

※例としてドメイン名は「example.com」とします。

各ドメイン用の.confファイルのserverディレクティブ内に 「client_max_body_size」を設定する

listen の直下あたりが無難です。

変更後にNginxを再起動

※php-fpmを利用している場合はphp-fpmも再起動しましょう。

以上で完了です。

最終チェック

client_max_body_size の設定変更が終わったら、最後にアップロードのテストをしてエラーが出ないか確認しましょう。

それでもまだ「413 Request Entity Too Large」エラーが再発する場合は、php.inipost_max_sizeupload_max_filesize の設定変更も必要です。

php.ini の設定値を以下のように変更しましょう。(※最大10MBまでアップロード許可の場合の例です。)

以上で解決です。

タイトルとURLをコピーしました