nginx で gzip 圧縮を実装してウェブサイトの速度を向上させる方法

nginx で gzip 圧縮を実装してウェブサイトの速度を向上させる方法

gzip 圧縮を使用する理由は何ですか?

nginx で gzip 圧縮を有効にすると、Web ページ内の js や css などの静的リソースのサイズが大幅に削減され、帯域幅が大幅に節約され、伝送効率が向上し、ユーザーに高速なエクスペリエンスが提供されます。

nginxはgzipを実装する

nginx におけるリソース圧縮の原理は、デフォルトで統合されているngx_http_gzip_moduleモジュールを介してリクエストをインターセプトし、gzip 圧縮する必要があるタイプに対して gzip を実行することです。使い方は非常に簡単で、オプションを設定することで直接有効にできます。 。

gzip が有効になった後のリクエスト ヘッダーとレスポンス ヘッダー

リクエストヘッダー:
受け入れエンコーディング:gzip、deflate、sdch

レスポンス ヘッダー:
コンテンツエンコーディング:gzip
キャッシュ制御:max-age240

gzip処理

HTTP プロトコルの観点から、リクエスト ヘッダーは acceopt-encoding:gzip deflate sdch を宣言します (圧縮アルゴリズムを指します。sdch は Google 自身が推進する圧縮方法です)
サーバー -> 応答 -> コンテンツを gzip で圧縮 -> ブラウザに送信 -> ブラウザが gzip をデコード -> gzip で圧縮されたコンテンツを受信

gzipの共通設定パラメータ

  • gzip on|off gzipを有効にするかどうか
  • gzip_buffers 4k バッファ (圧縮のためにメモリにバッファリングされるブロックの数はいくつですか? 各ブロックの大きさはどれくらいですか?)
  • gzip_comp_level [1-9] 推奨圧縮レベル6。レベルが高くなるほど圧縮率は低くなりますが、CPUリソースの浪費も増えます。
  • gzip_disable UAに一致する正規表現は、どのようなURIがgzip圧縮されないかです
  • gzip_min_length 200 圧縮を開始する最小の長さ。長さがこれより短い場合、nginx は圧縮しません。
  • gzip_http_version 1.0|1.1 http プロトコル バージョンの圧縮を開始します (デフォルト 1.1)
  • gzip_proxiedはリクエスタのプロキシサーバとコンテンツのキャッシュ方法を設定します。
  • gzip_types text/plain application/xml txt、xml、html、css などの圧縮を使用するファイルの種類
  • gzip_vary off gzip圧縮フラグを送信するかどうか

nginx 設定 gzip

静的ページ index.html

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
  <メタ文字セット="UTF-8">
  <title>nginx gzip 圧縮のデモ</title>
  <script src="./jquery.js" ></script>
</head>
<本文>
<img src="./nginx_img.jpeg" スタイル="幅: 100px;高さ: 100px;" />
<h1>nginx は gzip 圧縮を実装して帯域幅の使用量を削減し、Web サイトの速度を向上させます</h1>
<h1>nginx は gzip 圧縮を実装して帯域幅の使用量を削減し、Web サイトの速度を向上させます</h1>
<h1>nginx は gzip 圧縮を実装して帯域幅の使用量を削減し、Web サイトの速度を向上させます</h1>
<h1>nginx は gzip 圧縮を実装して帯域幅の使用量を削減し、Web サイトの速度を向上させます</h1>
<h1>nginx は gzip 圧縮を実装して帯域幅の使用量を削減し、Web サイトの速度を向上させます</h1>
<h1>nginx は gzip 圧縮を実装して帯域幅の使用量を削減し、Web サイトの速度を向上させます</h1>
</本文>
</html>

nginx の設定

サーバ{
    聞く 80;
    サーバー名 ローカルホスト 192.168.0.96;
    gzip オン;
    gzip_バッファ 32 4k;
    gzip_comp_レベル6;
    gzip_min_length 200;
    gzip_types application/javascript application/x-javascript text/javascript text/xml text/css;
    gzip_vary オフ;
    ルート /Users/lidong/Desktop/wwwroot/test;
    インデックス index.php index.html index.htm;
    アクセスログ /Users/lidong/wwwlogs/access.log;
    error_log /Users/lidong/wwwlogs/error.log;
    場所 ~ [^/]\.php(/|$) {
        127.0.0.1:9000; をデフォルトとして設定します。
        fastcgi_index インデックス.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_params を含めます。
    }
}

gzip の前にページ リクエストを使用するには:

gzip が有効になっているリクエスト:

知らせ

  • 画像やmp3は圧縮率が比較的小さいため、通常は圧縮する必要はありません。
  • 一般的にテキスト、CSS、JS、XML形式のファイルを圧縮します
  • 小さいファイルは圧縮する必要がなく、元のファイルよりも大きくなる可能性があります。
  • バイナリファイルは圧縮する必要がない

要約する

上記は、編集者が紹介した、ウェブサイトの速度を向上させるための nginx での gzip 圧縮の実装方法です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。

以下もご興味があるかもしれません:
  • Nginx サーバー構成で Gzip 圧縮を有効にする方法の詳細な説明
  • Nginx は GZIP 圧縮 Web ページ転送方式を有効にします (推奨)
  • Nginx で Gzip 圧縮を有効にしてページの読み込み速度を大幅に向上させる方法
  • nginx gzip 圧縮ページの設定
  • gzip 圧縮を使用した Nginx サーバー構成分析
  • Node.js サイトのリバース プロキシとして Nginx を使用する場合の GZip 圧縮の設定に関するチュートリアル
  • Nginx で圧縮と gzip 圧縮を有効にする方法
  • Nginx で gzip 圧縮を有効にする方法の例
  • Nginx での Gzip 圧縮設定の紹介
  • NginxはGzipアルゴリズムを使用してメッセージを圧縮します

<<:  MySQL 8.0.11 の詳細なインストール手順

>>:  MySQL 8.0.12 のインストールと設定方法のグラフィック チュートリアル (Windows10)

推薦する

Vue3 がデータ監視を実装するためにプロキシを使用する理由の分析

Vue データの双方向バインディング原則ですが、この方法には欠点があり、配列とオブジェクトの部分的な...

ミニプログラムは、カスタムのマルチレベル単一選択と複数選択を実装します

この記事では、参考のために、ミニプログラムでカスタムのマルチレベル単一選択および複数選択機能を実装す...

JavaScript でシンプルな Web 時計を実装する

JavaScript を使用して Web ページ クロックを実装します。効果は次の図に示されています...

Vue で円形プログレスバーを実装する例

データ表示は、常にあらゆる職業の人々が求めているものです。特にフロントエンド開発業界では、データを表...

MySQL データベースのバックアップとリカバリの実装コード

データベースのバックアップ #文法: # mysqldump -h server-u usernam...

vue-resource インターセプターの使用に関する詳細な説明

序文インターセプター最近のフロントエンド フレームワークでは、インターセプターは基本的に非常に基本的...

Dockerコンテナ間で通信する3つの方法

Docker コンテナは互いに分離されており、相互にアクセスできないことは誰もが知っていますが、依存...

MySQLデータ遅延ジャンプの問題の解決策

今日は、データベース遅延ジャンプに関する別の典型的な問題を分析しました。このプロセスでは、参考のため...

Dockerのインストール方法とDockerの4つのネットワークモードの詳細説明

1. Dockerをインストールするyum -y install docker-ioインストールが完...

Mysqlツリー再帰クエリの実装方法

序文部門テーブルなどのデータベース内のツリー構造データの場合、部門のすべての従属部門または部門のすべ...

CSSアニメーションとSVGを組み合わせてエネルギーの流れの効果を作成する

最終的な効果は次のようになります。アニメーションは2つのステップに分かれていますランニング軌道を開発...

MySQL で union all を使用してユニオンソートを取得する方法

プロジェクトでは、何らかの不可逆的な理由により、テーブルに保存されたデータがページの表示要件を満たす...

MySQL 外部キー制約の一般的な操作の例 [表示、追加、変更、削除]

この記事では、例を使用して、MySQL 外部キー制約の一般的な操作について説明します。ご参考までに、...

Vue3 でマークダウン エディター コンポーネントを使用する方法

目次インストールコンポーネントのインポート基本的な使い方保存したマークダウンまたは HTML テキス...