Nginx で HTTP 413 エラーが出た時の対処方法

Microsoft Azure

ブログのテーマを変えるときに直面したので対処方法を控えておきます。割とタイトな Nginx のデフォルト動作に引っかかっていたようなので知らないと困るかもしれないです。

スポンサーリンク

HTTP 413 エラーとは

HTTP 413 エラーは「Payload Too Large」と呼ばれ、クライアントからのリクエスト メッセージ サイズが大きいことが発生原因です。

413 Payload Too Large – HTTP | MDN (mozilla.org)

では、具体的にどれくらいのサイズであれば問題なく送れるのでしょうか。

Nginx の既定値

Nginx で受け入れることができるリクエスト メッセージ サイズを設定するのは、server 配下内の client_max_body_size という設定項目です。明示的に設定しなければ、既定値で 1MB となります。

WordPress のブログテーマでも、大きければ 10MB は悠に超えるのでここを設定しなければいけなくなりました。

設定

Azure Web Apps でホストしているので、Azure ポータルから Kudu を開いて SSH セッションを開始します。Nginx の設定ファイルを開き、上述の設定項目を追加します。今回使いたいテーマが 15MB くらいなので 20MB を目安にしています。

vi /etc/nginx/sites-enabled/default
server {
    #proxy_cache cache;
    #proxy_cache_valid 200 1s;
    listen 8080;
    listen [::]:8080;
    root /home/site/wwwroot;

    # ここを追加
    client_max_body_size 20M;

設定を保存したら Nginx を再起動します。Web Apps ごと再起動すると既定の設定内容に戻ってしまうので注意。

service nginx restart

コメント

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