Node.js で開発されたサイト。nginx を使用してリバース プロキシを実装する場合も。
これにより、サーバー側で gzip 圧縮を簡単に実装して、サイトの閲覧をよりスムーズにすることができます。
前提条件:node.js nginx reverse proxy.
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());
すべてのリクエストを圧縮するには、圧縮してください上にあります。
express 4.0 以降 (4.0 を含む)
var compress = require('compression'); app.use(compress());
4.0 以降のバージョンでは、ミドルウェアが独立して取り出されます。
したがって、最初に 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 モジュールをオンまたはオフにします。ここでオンを使用して起動を示します
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 番目の例は圧縮されていません。
以上がNode.js サイトが Nginx をリバース プロキシとして使用する場合に GZip 圧縮を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。