9

PageKit (mod_perl) アプリケーションをPlackに変換しました。これは、以前はApache2:: Request が処理していた POST_MAX/MAX_BODY を強制する何らかの方法が必要であることを意味します。これを行う最も簡単な方法は、おそらく nginx をアプリの前に配置することですが、アプリはすでに HAProxy の背後にあり、HAProxyでこれを行う方法がわかりません。

それで、私の質問は、最初にリクエストの本文全体を読み取らずに、 Plack::Middlewareで最大本文サイズを強制する方法です。

具体的には、ファイルのアップロードに関心があります。Plack::Request::Uploadによるサイズのチェックは、この時点で本文全体が読み取られてしまうため、遅すぎます。アプリはStarman経由でデプロイさpsgix.streamingれるtrueため、.

4

1 に答える 1

3

Twitterで宮川達彦さんから返事が来まし。彼は「Starman でデプロイすると、バッファリングがオンになっているため、ミドルウェアでも遅すぎます。nginx で行います」と述べています。

これは、スターマンの展開を扱っているため、私の特定の質問に答えます。

彼はまた、「バックエンドで読み取る前に大きなアップロードを拒否すると、一般的に問題が発生する可能性がある」と述べました。

于 2014-12-17T16:48:16.937 に答える