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 が中国語を入力および表示できない問題の解決方法

推薦する

CentOS7 は yum を使用して mysql 8.0.12 をインストールします

この記事では、centos7にyumを使用してMySQL 8.0.12をインストールする詳細な手順を...

jsは古典的なマインスイーパゲームを実装します

この記事の例では、古典的なマインスイーパゲームを実装するためのjsの具体的なコードを参考までに共有し...

ウェブデザインを改善するための 8 つの CSS ツールを共有する

ウェブサイトのデザインを編集または変更する必要がある場合、CSS が重要な役割を果たします。 CSS...

JavaScript シミュレーション計算機

この記事では、JavaScriptシミュレーション計算機の具体的なコードを参考までに紹介します。具体...

MySQL のデバッグと最適化に関する 101 のヒントを共有する

MySQL は強力なオープンソース データベースです。データベース駆動型アプリケーションの数が増える...

Ubuntu16.04にclionをインストールするプロセス全体と手順の詳細な説明

CLion のプロセス全体を最初から説明します。CLion は、JetBrains がリリースした新...

フォーム入力ボックスに関するWebデザインのヒント

この記事では、Web デザインにおけるフォーム入力ボックスに関するヒントとコードをいくつか紹介します...

CSS カウンターを使用して数字の順序付きリストを美しく表示する方法

Web デザインでは、Web サイトに表示されるデータの構造とコンテンツをユーザーが明確に理解できる...

CentOS 7のインストールと設定方法のグラフィックチュートリアル

この記事は、CentOS 7の詳細なインストールチュートリアルを参考のために記録します。具体的な内容...

MySQL ページングパフォーマンスの調査

一般的なページング方法: 1. エスカレーター方式エスカレーター方式では通常、前のページ/次のページ...

RHCE ブリッジング、パスワード不要のログイン、ポート番号の変更の概要

目次1. ブリッジを設定し、検証のためにパケットをキャプチャする1. ブリッジデバイスとセッションを...

Mysqlはフィールドスプライシングのための3つの関数を実装している

データをオペレーションにエクスポートする場合、フィールドの結合は避けられません。MySQL でこれが...

XHTML ドキュメントで JavaScript と CSS を正しく使用する方法

ますます多くのウェブサイトで、XHTML が HTML4 に取って代わって急速に普及しています。しか...

Vue再帰コンポーネントの簡単な使用例

序文多くの学生は既に再帰に精通していると思います。アルゴリズムの問​​題を解決するために再帰がよく使...

Ubuntu 16.04にJenkinsをインストールするための詳細な手順

1. 前提条件JDKがインストールされましたecho $PATHソフトリンクを作成し、JDKのインス...