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)

推薦する

JavaがMySQL 8.0に接続できない問題の解決策

この記事では、参考までにMySQL 8.0に接続できないJavaの問題をまとめて紹介します。具体的な...

CentOS7 デプロイメント Flask (Apache、mod_wsgi、Python36、venv)

1. Apacheをインストールする # yum インストール -y httpd httpd-de...

JSはじゃんけんゲームを実装します

この記事の例では、じゃんけんゲームを実装するためのJSの具体的なコードを参考までに共有しています。具...

Node.js の非同期イテレータの詳細な説明

目次序文非同期イテレータとは何ですか?非同期イテレータストリームとしてページング機能を備えたAPIの...

MySQL における Decimal 型と Float Double 型の違い (詳細説明)

MySQL には、10 進数などの標準データ型だけでなく、float や double などの非標...

雨滴効果を実現する JavaScript キャンバス

この記事の例では、雨滴効果を実現するためのキャンバスの具体的なコードを参考までに共有しています。具体...

タグ li はブロックレベル要素ですか?

なぜ高さを設定できるのでしょうか。<h1 /> などの要素とは異なり、「セミインライン」...

Excelアップロード機能を実現するVue + iViewの完全コード

1. HTML部分 <Col span="2">ファイルをアップロー...

nginx で SSL 証明書を設定して https サービスを実装する方法

前回の記事では、openssl を使用して無料の証明書を生成した後、この証明書を使用してローカル ノ...

MySQL並列レプリケーションの簡単な説明

1. 並列レプリケーションの背景まず、並列レプリケーションの概念はなぜ存在するのでしょうか? 1. ...

Zabbixについて管理者ログインパスワードを忘れた場合、パスワードをリセットする

Zabbix 管理者ログイン パスワードのリセットに関する問題は次のとおりです。 1. 問題の説明:...

VMware 仮想マシンの NAT モードを構成する方法

この記事では、VMware仮想マシンのNAT構成プロセスを詳しく説明します。具体的な内容は次のとおり...

JSで実施された機雷掃海プロジェクトの概要

この記事では、JS掃海プロジェクトの概要を参考までに紹介します。具体的な内容は次のとおりです。プロジ...

Jenkins を通じて None のイメージを定期的にクリーンアップする方法

序文継続的なコード配信のプロセスで、Jenkins を利用して Docker イメージを作成すると、...

vuex データの永続化のための 2 つの実装ソリューション

目次ビジネス要件:解決策 1: vuex-persistedstate解決策2: vuex-pers...