GCE(Google Compute Engine)のf1-microインスタンスにNginx で WordPressサーバーを立てましたが、MarsEditから投稿が成功していませんでした。その原因がわかりました。
client intended to send too large body エラー
最初は f1-micro でメモリが600MBぐらいのサーバーなので、スペックの問題かと思い、可能な限りプラグイン外したりしていましたが、どうやってもエラーになってしまう。
ところが前回、Fluentdでログを集約できるようにしたところ、エラーが出ていることがわかりました。
2015/10/31 xx:xx:xx [error] 1690#0: *2071 client intended to send too large body: 2655694 bytes, client: xxx.xxx.xxx.xxx, server: a-tak.com, request: "POST /blog/xmlrpc.php HTTP/1.1", host: "a-tak.com"
調べてみるとこちらのサイトが見つかりました。
nginxで”client intended to send too large body”が発生した時の対策方法 – Qiita
なるほど、POSTのサイズが1MBの制限がかかってるんですね。
nginx.confの http コンテキストの中に
client_max_body_size 10m;
を入れて、無事 MarsEdit(XML-RPC) から投稿できるようになりました。
これでやっと普通にGCE上のWordPressが使えるようになってきました。