我在Nginx的XXX.conf文件中进行了修改并重新启动,但是“413 Request Entity Too Large”错误未得到解决
目标
- NginxにてファイルをPostした時に発生する「413 Request Entity Too Large」を解決しようとして/etc/nginx/conf.d/XXX.confのファイルをいじって色々やったけどパッと解決できなかったのでまとめる。
症状:病征、表征、疾病特征、生病迹象、身体反应
-
- 下記の記事の様にNginxのXXX.confファイルをいじってNginxを再起動しても「413 Request Entity Too Large」のエラーが解消しない。
Laravel8 Nginx 「413 Request Entity Too Large」のエラーが出た
我想做的事情 (Wǒ zuò de
-
- 細かいことはいいからとにかく「413 Request Entity Too Large」を解消してスッキリしたい。
そのためにNginxの全体の設定としてファイルアップロードのサイズ制限を無効にする。(とにかくガバガバ設定で413解消したい)
解决方案 (jiě jué àn)
/etc/nginx/nginx.confのkeepalive_timeout 65;の下の行くらいに下記の内容を記載する。
/etc/nginx/nginx.conf
lient_max_body_size 0;
下記コマンドを実行してNginxを再起動する。
# nginx -s reload
100MBのファイルをPostしたら送る事ができた。
因素
解释
起因
根源
缘故
动机
- 自分が必死に編集していた/etc/nginx/conf.d直下のdefaunt.confが自分が開発しているサービスのドメイン(サーバー)の設定ファイルではなかった。
总结
-
- nginx.confは起動しているNginx全体の設定であり、「親」の設定になる。/etc/nginx/conf.d直下のXXX.confはそれぞれのドメインごとの設定であるらしい。
-
- だから今回の解決策は起動しているNginxのすべてのドメイン(サーバー)のファイルアップロード上限を無制限に設定しているため非常によろしくない。
そもそも無制限にファイルアップロードできる状態があまりセキュリティ上よろしくない(すごい大きいファイルとかアップロードできちゃう)
誰かがこのサーバーで新たに新規ドメイン(サーバー)を追加した場合意図せず「ファイルアップロード上限なし」設定が反映されてしまう。
なので、明確な理由が合って全体的に設定を変更するためにnginx.confに記載して反映するならいいが「とりあえず動いたから、、、」でnginx.confに記載するのは良くないと思う。
作者的话
-
- Docker内でviが使えなかったので下記記事を参考にvimをインストールしてnginx.confを修正した。($apt-get updateと$ apt-get install vimでvim取得)
Docker内でvi使えなかった時の対処
我的备忘录
- 一回/etc/nginx/nginx.confにlient_max_body_size 0;を記載して# service nginx reloadを実行して設定を行ったあとからは/etc/nginx/conf.d/default.confにlient_max_body_size 0;を記載して/etc/nginx/nginx.confのlient_max_body_size 0;を削除して# service nginx reloadしても正常に動くようになった。(なんで/etc/nginx/conf.d/default.confに初っ端記載してNginxリロードしても問題は解決しなかったんだろうか、、)
文献引用
-
- https://onoredekaiketsu.com/nginx-413-errer/
- nginx起動、再起動