14

新しい Heroku Cedar スタックで GZIP 圧縮を有効にするにはどうすればよいですか? これは彼らのサイトから直接です:

Cedar アプリへのリクエストは、nginx のような HTTP サーバーを介してプロキシされるのではなく、アプリケーション サーバーに直接送信されるため、レスポンスの圧縮はアプリケーション内で行う必要があります。Rack アプリの場合、これは Rack::Deflater ミドルウェアで実現できます。gzip された静的アセットの場合、ミドルウェア スタックで ActionDispatch::Static の前に Rack::Deflater がロードされていることを確認してください。

これを正しく読んでいれば、私の Python アプリケーション コードは応答を gzip 圧縮する役割を担っているのでしょうか? 静的アセット (css/js など) を圧縮するにはどうすればよいですか? Flask と GUnicorn を使用しています。

4

2 に答える 2

7

応答を gzip する wsgi ミドルウェアが必要なだけです。Pyramidまたはhttp://librelist.com/browser//flask/2010/6/14/gzip-compression/を使用したすべての HTTP トラフィックの gzipを参照してください。

于 2011-10-21T16:35:19.477 に答える
1

2003 年に発行されたWSGI 仕様によると、アプリは応答を gzip するのではなく、サーバー (CGI スタイルのアプリを実行している Apache であると推定されます) に任せるべきです。

アプリケーションとミドルウェアは、チャンキングや gzip など、いかなる種類の Transfer-Encoding も出力に適用してはなりません。「ホップバイホップ」操作として、これらのエンコーディングは実際の Web サーバー/ゲートウェイの領域です。

しかし 2013 年の今日、多くの場合、アプリサーバーです。WSGI はこれを予期していませんでした。http://www.b-list.org/weblog/2009/aug/10/wsgi/によると、それは問題です

CGI との互換性に対する WSGI の奇妙な主張は、ここ 2009 年の時点でも、Python Web 開発の世界は 1997 年のアプリケーション プログラミング モデルを大幅に改善できていないことを意味します。

于 2013-07-28T18:34:48.067 に答える