前提条件:node.js nginx リバース プロキシ.
node.js 実行する必要がある作業:
express 4.0 以下:
app.use(express.compress()); //主要是这句 app.use(express.json()); app.use(express.urlencoded()); app.use(express.bodyparser()); app.use(express.methodoverride()); app.use(express.cookieparser());
すべてのリクエストが圧縮されるため、compress が最上位に配置されます。
express 4.0 以降 (4.0 を含む)
var compress = require('compression'); app.use(compress());
4.0 以降では、ミドルウェアが独立して取り出されます。
So you first need to rquire('compression')
express 3.5 と Express 4.0 の主な違いを表示するにはここをクリックしてください
node.js が行う必要がある作業は非常に簡単です。
nginx が行う必要がある作業:
nginx 構成ファイルを開いて構成を変更し、gzip スイッチをオンにします
nano /usr/local/nginx/conf/nginx.conf
独自のサーバー上の nginx は / にインストールされていない可能性がありますusr/local/ ディレクトリなので、独自のインストール ディレクトリに従って設定ファイル nginx.conf を見つけます。
次の設定を http 設定ノードに追加します。
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; http ( //放上面配置节点 )
各設定項目は何を意味しますか?
1) gzip
構文: gzip オン/オフ
デフォルト値: オフ
スコープ: http、サーバー、場所
説明: gzip モジュールをオンまたはオフにします。ここでは Start
2) gzip_min_length
#構文: gzip_min_length length
デフォルト値: gzip_min_length 0
スコープ: http、サーバー、ロケーション
説明: 圧縮が許可されるページの最小バイト数を設定します。ページのバイト数は、ヘッダーのコンテンツ長から取得されます。デフォルト値は 0 で、サイズに関係なくページを圧縮します。バイト数は 1k 以上に設定することをお勧めしますが、1k 未満の場合は圧縮がさらに進む可能性があります。 |
3) gzip_buffers
構文: gzip_buffers 数値サイズ
デフォルト値: gzip_buffers 4 4k/8k
スコープ: http、サーバー、場所
説明: gzip 圧縮結果データ ストリームを保存するために複数ユニットのキャッシュを取得するようにシステムを設定します。 4 16k は、16k 単位でメモリを申請し、元のデータ サイズの 4 倍を 16k 単位で申請することを意味します。
4) gzip_comp_level
構文: gzip_comp_level 1..9
デフォルト値: gzip_comp_level 1
スコープ: http、サーバー、場所
説明: gzip 圧縮率。1 は圧縮率が最も小さく、処理速度が最も速く、9 は圧縮率が最も大きいですが、処理が最も遅くなります (転送は高速ですが、CPU の消費量が多くなります)。ここでは5に設定されています。
5) gzip_types
構文: gzip_types mime-type [mime-type ...]
デフォルト値: gzip_types text/html
スコープ: http、server、location
説明: 圧縮の MIME タイプと一致します。(指定されているかどうかに関係なく)、「text/html」タイプは常に圧縮されます。これは application/x-javascript text/css application/xml に設定されます。
圧縮が必要な状況に応じて、一般的に使用される静的タイプがあります:
text/html text/plain text/css application/x-javascript text/javascript application/xml
ok、基本サーバーはここで構成されています。nginx はリロードするだけで済みます。
curl を使用して、サーバー上で gzip がオンになっていることをテストする方法をテストしてみましょう (テスト条件はデフォルトの gzip_types です。つまり、text.html のみが圧縮され、他の型は圧縮されません)。
gzip がオンになっているかどうかを確認します。クライアントは「accept-encoding: gzip, deflate」ヘッダー情報を追加する必要があります。
$ curl -i -h "accept-encoding: gzip, deflate" "http://localhost/tag.php"
http/1.1 200 ok server: nginx date: thu, 08 mar 2012 07:23:46 gmt content-type: text/html connection: close content-encoding: gzip
ご覧いただけます。 2 番目の例は圧縮されていません。
以上がNginx をリバース プロキシとして使用して GZip 圧縮を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。