Nginx は gzip 圧縮に基づいてアクセス速度を向上します

Nginx は gzip 圧縮に基づいてアクセス速度を向上します

1. nginx はなぜ gzip を使用するのですか?

1. 圧縮の役割:

ページがgzipで圧縮された後、

ページサイズは元のサイズの約1/7に圧縮できます。

伝送速度とページを開く時間が大幅に改善されます。

ユーザーのページアクセスエクスペリエンスの向上に役立ちます

2. Nginx が gzip 圧縮を実装する原理:

ngx_http_gzip_module モジュールを通じてリクエストをインターセプトします。

gzipが必要なタイプにはgzip圧縮を実行します

3. ngx_http_gzip_module はデフォルトで Nginx に統合されています。

再コンパイルの必要はありません。電源を入れるだけです

ソースコード: https://github.com/liuhongdi/

2. gzipモジュールの使用例

gzip オン;
 gzip_min_length 1k;
 gzip_disable "MSIE [1-6]\.";
 gzip_comp_レベル5;
 gzip_types text/css text/javascript text/xml text/plain application/json application/javascript application/x-javascript application/xml application/xml+rss;
 gzip_http_バージョン1.1;

各指示の説明:

gzip オン;

gzipモードを有効にする、

デフォルト値はオフで、gzip 圧縮は有効になっていないことを意味します。

もちろん、オンに設定する必要があります。

gzip_min_length 1k;

圧縮されたページに許可される最小バイト数を設定します。ページのバイト数は、ヘッダーの Content-Length から取得されます。

ファイルが小さすぎると圧縮効果が明らかでなく、圧縮しない場合よりもファイルサイズが大きくなる場合もあります。

デフォルト値は 20 ですが、これは小さすぎます。

一般的に長さは1k以上に設定します

gzip_disable

IE6 は Gzip のサポートが不十分なので、有効になっていません。

gzip_comp_level :

gzip圧縮レベル、1~9、

数値が大きいほど圧縮率は高くなりますが、CPU 時間も長くなります。

デフォルト値は1で、通常は5または6に設定されます。

CPU使用率が高い場合は2または3に設定しても問題ありません

gzip_http_バージョン:

gzip 圧縮でサポートされる最小の HTTP バージョンを設定します。

これよりバージョンが低い場合、gzip 圧縮は使用されません。

デフォルト値は1.1です

一般的には1.1が使用されます。

gzip_types :

gzip 圧縮が有効になっているページの種類については、複数の値がスペースで区切られます。

ワイルドカード * は任意のタイプに一致しますが、この値は使用しないでください。

js/css/html/text コンテンツの圧縮のみが大きな効果を発揮します。

圧縮アルゴリズムによってすでに処理されている画像やビデオなどのファイルに対して圧縮を有効にしても、明らかな効果はありません。

1. text/html タイプが指定されているかどうかに関係なく、このタイプの応答では常に圧縮が有効になります。

したがって、この値は書き込む必要はありません

2. これらのファイルタイプに対応するMIMEタイプは、nginx/conf/mime.typesファイルにあります。

3. よく使われる 9 つの値:

テキスト/css テキスト/javascript テキスト/xml テキスト/プレーン

アプリケーション/json アプリケーション/javascript アプリケーション/x-javascript

アプリケーション/xml アプリケーション/xml+rss

3. 例で使用されていないその他の設定:

gzip_バッファ 4 16k;

gzip_vary オン;

gzip_proxied 任意;

gzip_vary:

Varyヘッダーのサポート、

オンの場合、「Vary: Accept-Encoding」がヘッダーに追加されます

この値により、フロントエンド キャッシュ サーバーは GZIP 圧縮されたページをキャッシュできるようになります。

たとえば、Squidを使用してnginxで圧縮されたデータをキャッシュする

nginxの前にsquidやvarnishを使用する場合、

この値をオンに設定できます

gzip_プロキシ

nginx をフロントエンド プロキシとして使用する場合は、このオプションを有効にします。

値がanyの場合、バックエンドサーバーのヘッダーが返す情報に関係なく、

圧縮は無条件に有効になります

nginxをリバースプロキシとして使用する場合、

この値を任意の値に設定する

gzip_バッファ:

圧縮を処理するために使用されるバッファ サイズを設定します。

デフォルト: 32 4k|16 8k

32 4k は、応答データが 4k 単位でメモリに要求され、サイズは 4k の 32 倍 (128k) であることを意味します。

このオプションを設定せず、デフォルト値を使用することをお勧めします。

4. gzipの圧縮効果を確認する

1. curlを使用して表示する

#-I, --head ドキュメント情報のみを表示 ヘッダー情報のみを表示

#-H,--header LINE: カスタムヘッダー LINE をサーバーに渡す (H) カスタムリクエストヘッダー情報

[root@localhost curl]# curl -I -H "Accept-Encoding: gzip, deflate" http://www.lhdtest.net
HTTP/1.1 200 OK
サーバー: openresty
日付: 2020年4月27日月曜日 07:59:38 GMT
コンテンツタイプ: text/html; 文字セット=utf-8
接続: キープアライブ
変化: Accept-Encoding
Cookie の設定: SESSID_WEB=0ks2eh03vmv4dhje29ggojl1bs; パス=/
有効期限: 1981 年 11 月 19 日 (木) 08:52:00 GMT
キャッシュ制御: no-store、no-cache、must-revalidate
プラグマ: キャッシュなし
コンテンツエンコーディング: gzip

注: Content_Encoding: gzip と表示される場合は、gzip 圧縮が有効になっていることを意味します。

2. ブラウザで効果を確認する

ブラウザの応答ヘッダー情報から gzip が有効かどうかを確認します。

スクリーンショットを参照してください: 圧縮前後の効果の比較:

圧縮前:

圧縮後:

注: Firefox の Web コンソールを使用します。yslow などのプラグインを試すこともできます。

5. nginx のバージョンを確認します。

[root@centos8 soft]# /usr/local/soft/nginx-1.18.0/sbin/nginx -v
nginx バージョン: nginx/1.18.0

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • nginx gzip 圧縮ページの設定
  • Nginx Gzipモジュールの有効化と設定手順の詳細な説明
  • nginx での gzip 設定パラメータの詳細な説明
  • CDN が http 1.0 のみをサポートする問題を解決するには、Nginx で gzip_http_version を使用します。
  • Nginx での Gzip 圧縮設定の紹介
  • Nginx サーバーの GZip 設定パラメータの詳細な説明
  • gzip 圧縮を使用した Nginx サーバー構成分析
  • Nginx サーバー構成で Gzip 圧縮を有効にする方法の詳細な説明
  • Node.js サイトのリバース プロキシとして Nginx を使用する場合の GZip 圧縮の設定に関するチュートリアル
  • Nginx は GZIP 圧縮 Web ページ転送方式を有効にします (推奨)
  • nginxのパフォーマンスを高速化: gzipとキャッシュを有効にする
  • Nginx の基本 - Gzip 設定ガイド
  • Nginx で gzip 圧縮を有効にする方法の例
  • Nginx で圧縮と gzip 圧縮を有効にする方法
  • Nginx で Gzip 圧縮を有効にしてページの読み込み速度を大幅に向上させる方法
  • NginxはGzipアルゴリズムを使用してメッセージを圧縮します
  • Nginx gzip設定について
  • Nginx のパフォーマンス最適化 (ページを開く速度を最大化) のための Gzip 圧縮設定の詳細説明

<<:  JS での Reduce() メソッドの使用の概要

>>:  MySQLの場合の使用例分析

推薦する

Linux の操作とメンテナンスの基本システムディスク管理チュートリアル

1. ディスクパーティション: 2. fdiskパーティションディスクが2 TB未満の場合はfdis...

HTML スタイル タグと関連する CSS リファレンスの詳細な説明

HTML スタイル タグスタイルタグ - ドキュメント内でスタイルを宣言するときにこのタグを使用しま...

MySQLはパスワードなしでログインする例を実装しています

具体的な方法:ステップ1: mysqlサービスを停止する /etc/init.d/mysqld を停...

CSSでイメージマッピングを実装する方法

1. はじめにイメージマップを使用すると、画像の領域をホットスポットとして指定できます。この領域にマ...

CSSはグラデーションを巧みに利用して高度な背景光アニメーションを実現します

成し遂げるこの効果は CSS を使用して完全に再現することは困難です。 CSS でシミュレートされた...

MySQL の自動増分主キーに関する詳細な説明

目次特徴保存戦略自己増加の決定自動増分値の変更実行プロセス問題点自動増分ロックロック戦略バッチ挿入の...

Websocket+Vuexはリアルタイムチャットソフトウェアを実装します

目次序文1. 効果は図の通りです2. 具体的な実施手順1. Vuexの紹介2.webscoked実装...

MySQL 5.7.18 でパスワードを変更する方法

MySQL 5.7.18 でパスワードを変更する方法: 1. まずMySQLサーバーをシャットダウン...

CentOS 起動時にカーネルモジュール overlayfs 操作を自動的にロードする

CentOS でカーネル モジュールを自動的にロードするには、/etc/sysconfig/modu...

Kubernetes ポッドオーケストレーションとライフサイクルの詳細な説明

目次K8Sマスター基本アーキテクチャポッドオーケストレーションコンセプトPod オブジェクトのプロパ...

CSS フロントエンドページレンダリング最適化属性 will-change の具体的な使用法

序文スクロールやサイズ変更などのスクロール イベントがトリガーされると、トリガーの頻度が非常に高くな...

Docker が elasticsearch を起動するときのメモリ不足の問題と解決策

質問Docker が elasticsearch をインストールして起動するときにメモリが不足するシ...

MySQL 8.0.12 インストール設定方法とパスワード変更

この記事ではMySQL 8.0.12のインストールと設定方法を参考までに記録します。具体的な内容は以...

Linuxサーバ侵入緊急対応記録(概要)

最近、お客様から支援の依頼を受けました。管理されている通信コンピュータ ルームから、サーバーの 1 ...

Vue.js を学ぶ際に遭遇する落とし穴

目次クラス void のポイントES6 矢印関数ヴュートファイvue-cli非同期と同期実行と展開ヒ...