ブログのテーマを変えるときに直面したので対処方法を控えておきます。割とタイトな 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
コメント