現象
開発中のアプリで、画像データをBese64エンコードしてJsonに含めてバックエンドにPOSTした場合に、413 Request Entity Too Largeが発生。
他の参考サイトを元に、プロジェクトルートに「.ebextensions」フォルダを作成し、その中にnginxの設定変更ファイルを作成するもうまくいかず。。。
Elastic Beanstalk にファイルアップロードができない (nginxで413エラー)
.ebextensions/01-nginx-max-body.config
files:
"/etc/nginx/conf.d/client-max-body-size.conf":
mode: "000755"
owner: root
group: root
content: "client_max_body_size 100M;"
container_commands:
01-nginx_reload:
command: sudo nginx -s reload
原因を調べる
sshでec2に侵入し、「/etc/nginx/conf.d」配下を見てみるも、confファイルが作成されていない。
そもそもここでいいんだっけ?と思い、「/etc/nginx/nginx.conf」を見てみると、、、
include conf.d/elasticbeanstalk/*.conf;
読み込まれる先は、「/etc/nginx/conf.d」ではなく、「/etc/nginx/conf.d/elasticbeanstalk」だった。
なのでそのように設定ファイルを書き換えてやる。
解決
以下のように設定ファイル書いてやって、デプロイしたらファイル作成されて、無事設定も反映されてました。
.ebextensions/01-nginx-max-body.config
files:
"/etc/nginx/conf.d/elasticbeanstalk/client-max-body-size.conf":
mode: "000755"
owner: root
group: root
content: "client_max_body_size 100M;"
container_commands:
01-nginx_reload:
command: sudo nginx -s reload