Nginx をリバース プロキシとして使用して GZip 圧縮を構成する方法

WBOY
リリース: 2023-05-22 23:43:04
転載
1101 人が閲覧しました

前提条件: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
ログイン後にコピー
rreerree

ご覧いただけます。 2 番目の例は圧縮されていません。

以上がNginx をリバース プロキシとして使用して GZip 圧縮を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート