Nginx はリクエスト接続を統合し、ウェブサイトのアクセス例を高速化します

Nginx はリクエスト接続を統合し、ウェブサイトのアクセス例を高速化します

序文

世界最高の Web サーバーの 1 つである Nginx の利点は明らかです。 Nginx がリクエスト接続をマージする方法について説明します。

クイックファクト

Web を閲覧する際、閲覧速度に影響を与える重要な要素は同時ブラウザの数です。簡単に言えば、同時実行タスク数とは、Web ページを閲覧するときに同時に実行されるタスクの数です。

もちろん、ブラウザの同時リクエスト制限は同じドメイン名に対してです。 同じドメイン名での同時リクエスト数には一定の制限があります。 制限を超えたリクエストはブロックされます。

まず、各ブラウザの同時接続数を見てみましょう。

ブラウザがこの決定を下す際に考慮すべき事項を列挙する

  • TCP プロトコルの制限により、PC の外部接続に使用できるポートは 65536 個のみであり、オペレーティング システムも、オペレーティング システムの TCPIP プロトコル スタック リソースがすぐに使い果たされるのを防ぐために、半オープン接続の数を制限しています。したがって、ブラウザーは TCP 接続をあまり多く発行すべきではありません。代わりに、使い果たされた TCP 接続を再利用するか、TCP 接続を単純に再確立する必要があります。
  • ブロッキング ソケット モデルを使用して接続を確立する場合、複数の接続を同時に発行すると、ブラウザーはさらに複数のスレッドを開く必要があり、スレッドは軽量リソースと見なされないことがあります。結局のところ、コンテキスト スイッチのコストは小さくありません。
  • これは、サーバーを保護するための良心的なクライアントとして機能するブラウザです。イーサネットの衝突検出メカニズムと同様に、クライアントはパブリック リソースを使用するときに待機期間を独自に決定する必要があります。 2 つ以上のクライアントがパブリック リソースを使用する場合、より強力な悪意のあるクライアントによって、より弱いクライアントがパブリック リソースにまったくアクセスできなくなる可能性があります。 Xunlei は以前、良心的なクライアントではないという批判を受けました。HTTP プロトコル クライアントとして、サーバーへの負荷を考慮しておらず、BT クライアントとして、アップロード量をフィードバックする義務を考慮していませんでした。

タオバオテンギン

いくつかのウェブサイトを訪問すると、コード内のいくつかの js ファイルと css ファイルが 1 つのリクエストを通じて取得されていることがわかります。上記の知識では、同時ブラウザ リクエストの数には制限があることがわかっていますが、複数のレコードを 1 つのリクエストにマージすると、応答速度が加速される可能性があります。

Taobao が使用する tengine は、2011 年末からオープンソースとなっている nginx をベースにした Web サーバーです。オープンソース モジュール nginx-http-concat は、複数のファイルを 1 つの応答メッセージにマージできます。

インストール

サードパーティモジュール nginx-http-concat を初めてインストールする

http://tengine.taobao.org/download/tengine-2.2.0.tar.gz をダウンロードしてください
wget https://github.com/alibaba/nginx-http-concat/archive/master.zip -O nginx-http-concat-master.zip
nginx-http-concat-master.zip を解凍します。
tar -xzvf テンジン-2.2.0.tar.gz
cd テンジン-2.2.0

構成、コンパイル、インストール

 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=../nginx-http-concat-master
 作る
 インストールする

Nginx がすでにインストールされている場合は、サードパーティのプラグインを構成するだけです。 Nginx -V で、Nginx のバージョンを確認します。利用できない場合は、対応するバージョンをダウンロードします。

コードを実行するだけです。

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=../nginx-http-concat-master
作る

コンパイルが成功した後

#コピーする前にnginx実行ファイルをバックアップしてください cp /objs/nginx /usr/local/nginx/sbin/nginx

Nginx を終了して再起動します。

構成

場所セクションに次の構成を追加します。

場所 /static/css/ {
  連結する;
  連結最大ファイル数 20;
  concat_unique オフ;
  concat_types テキスト/css アプリケーション/javascript;
}

マージ方法

http://static.52itstyle.com/static/css/??index.css,common.css?v=20171111

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

以下もご興味があるかもしれません:
  • nginxのパフォーマンスを高速化: gzipとキャッシュを有効にする
  • CDN アクセラレーションを使用する際にユーザーの IP を取得するように Nginx を構成する方法の詳細な説明
  • WIN での Nginx キャッシュ アクセラレーション設定方法
  • nginx-http-concat モジュールを使用して、nginx で静的リソース ファイルをマージします。
  • Nginx 設定ファイルの問題により開けない不明なディレクティブの解決方法

<<:  Vue Element UIの使用時に遭遇した問題をまとめる

>>:  Windows システムの MySQL が中国語を入力および表示できない問題の解決方法

推薦する

VMware15/16 VMwareのロックを解除してMacOSをインストールする詳細な手順

VMware バージョン: VMware-workstation-full-16 VMware バー...

CSS @font-face パフォーマンス最適化の詳細な理解

この記事では主に、フォント読み込みの最適化に関する一般的な戦略を紹介します。内容の大部分は参考資料と...

Nginx を使用してグレースケール リリースを実装する

グレースケールリリースとは、白と黒をスムーズに移行できるリリース方法を指します。 ABテストとは、グ...

JavaScript でウェブ プレーヤーを実装する

今日は、JavaScript を使用して Web ページ上にプレーヤーを作成する方法を紹介します。誰...

WeChatアプレットタブの左右スライドスイッチ機能実装コード

効果画像: 1. はじめに独自のアプレットでこのような機能を実装する必要がある1. 核となる考え方ス...

HTMLとリソースがどのように読み込まれるかを理解します

このブログのすべてのコンテンツは、クリエイティブ コモンズ ライセンスの下でライセンスされています。...

MySQL でスロークエリを有効にする方法の例

序文スロー クエリ ログは、MySQL で非常に重要な機能です。MySQL のスロー クエリ ログ機...

Chrome 73 によるフレックスレイアウトの崩れの解析と解決方法

現象プロジェクトにはネストされたフレックス構造がいくつかあります。 <スタイル> /* ...

nginx+FastDFS を使ってファイル管理システムを段階的に構築する

目次1. FastDFS の概要1. はじめに2. FastDFSストレージ戦略3. FastDFS...

CSSは背景画像の画面適応を実現する

ログインページなどのホームページを作成する場合、大きな背景画像を配置する必要があり、さまざまな画面の...

Nginx の http リソース リクエスト制限の詳細な説明 (3 つの方法)

前提条件: nginx には、ngx_http_limit_conn_module モジュールと n...

JPQLに基づく純粋なSQL文方式の詳細な説明

JPQL は Java Persistence Query Language の略です。 Java ...

Vueのウォッチリスナーの使い方を説明する記事

目次リスナーウォッチ形式リスナーを設定します。要約するリスナーウォッチ関数名は、リッスンする要素の名...

fastdfs+nginxクラスタ構築の実装

1. fastdfs の紹介1. fastdfsとは何かFastdfs は軽量のオープンソース分散フ...