質問編集履歴

1 質問の追記

pipo

pipo score 17

2019/05/10 00:05  投稿

nginxでアップロードファイルの容量制限をどこに置くべきか
お世話になっております。
現在、Dockerで
WSGI <-> Webサーバ <-> Proxyサーバ <-> ユーザ
のような環境を構築しています。
WebサーバとProxyサーバは共にnginxです。
WSGIの方でアップロード機能を実装したので、容量制限もしておきたいと考えたのですが、
WebサーバとProxyサーバのどちらに容量制限を置くべきでしょうか(もしくは両方?)
容量制限は以下のようにしています。  
nginx.conf  
```nginx
http {
   client_max_body_size 22m;
}
```
私の方でも、
両方に置くパターン、片方にだけ置くパターン、それぞれ試してみた結果
Webサーバ側のnginxに置くだけでいいのかなという感じでしたが、
サーバ周りについての知識が乏しいので本当に大丈夫か不安なので質問させていただきました。
理由も添えて回答いただけるとありがたいです。
 
ついでにもう一点分かるようでしたらお答えいただけると助かります。  
WSGI側にも容量制限を設けています。  
それは、容量制限を超えるとWSGI側で用意したエラーページを表示させたい為なのですが、  
その場合だとサーバ側の容量制限をある程度大きくしておいて、WSGIで本当に制限したい容量を設定する方法なのかなと思いましたが正しいでしょうか?  
例えば  
サーバ側:100MBまで  
WSGI側:22MBまで  
というような感じです。  
ただここで気になったのが、サーバ側の制限を大きくし過ぎてしまうと、一旦サーバを通過してWSGIにファイルが行くことになるので負荷が大きくなってしまうのかなという不安があります。  
WSGIはFlaskを使っています。  
そこらへんの処理がどのように行われているかもよく分かっていないので合わせてお答えいただけると嬉しいです。  
 
 
よろしくお願いいたします。
  • nginx

    1580 questions

    nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

  • proxy

    241 questions

    proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る