ホームページ  >  記事  >  運用・保守  >  Nginx がリクエスト接続をマージし、Web サイトへのアクセスを高速化する方法

Nginx がリクエスト接続をマージし、Web サイトへのアクセスを高速化する方法

王林
王林転載
2023-05-15 10:16:18769ブラウズ

豆知識

Web を閲覧するとき、同時ブラウザの数という閲覧速度に影響を与える重要な要素があります。簡単に言うと、同時実行数とは、Web ページを閲覧するときに同時に実行されるタスクの数を指します。

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

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

Nginx がリクエスト接続をマージし、Web サイトへのアクセスを高速化する方法

ブラウザがこの決定を行う際にどのような考慮事項があるかを列挙してみましょう

  • #TCP プロトコルの制限により、外部への接続を発行するために使用できる PC 側のポートは 65536 個のみです。オペレーティング システムによっても、半分のポート数が制限されています。オペレーティング システムの tcpip プロトコル スタック リソースがすぐに使い果たされるのを防ぐために接続をオープンするため、ブラウザは TCP 接続を大量に発行することを苦手とし、TCP 接続を使用した後に再利用するか、単純に再確立する方法を採用します。 TCP接続。

  • ブロッキング ソケット モデルを使用して接続を確立する場合、複数の接続を同時に発行すると、ブラウザはさらにいくつかのスレッドを開く必要があり、スレッドの時間は軽量リソースではないため、コンテキスト スイッチのコストは小さくありません。

  • #これは、サーバーを保護する良心的なクライアントとして機能するブラウザです。イーサネットの競合検出メカニズムと同様に、クライアントはパブリック リソースを使用する際の待機期間を独自に決定する必要があります。 3 つ以上のクライアントがパブリック リソースを使用したい場合、強力な悪のクライアントにより、弱いクライアントがパブリック リソースに完全にアクセスできなくなる可能性があります。以前、Xunlei は、http プロトコルクライアントとしてサーバーへの負荷を考慮しておらず、bt クライアントとしてアップロード量の返済義務を考慮していないため、良心的なクライアントではないと批判されました。

淘宝網

いくつかの Web サイトにアクセスすると、コード内のいくつかの js および css ファイルが取得されたものとして渡されることがわかります。上記の知識から、ブラウザーの同時リクエスト数には制限があることがわかりますが、複数のレコードを 1 つのリクエストにマージすると、応答速度が向上する可能性があります。

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

インストール

サードパーティ モジュール nginx-http-concat の初期インストール

wget 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
unzip nginx-http-concat-master.zip
tar -xzvf tengine-2.2.0.tar.gz
cd tengine-2.2.0

設定、コンパイル、インストール

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

nginx がインストールされている場合は、サードパーティのプラグインを設定するだけです。 nginx -v で nginx のバージョンを確認し、そうでない場合は、対応するバージョンをダウンロードします。

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

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

コンパイルが成功したら、

#复制之前请备份nginx执行文件
cp /objs/nginx /usr/local/nginx/sbin/nginx

nginx を強制終了して再起動します。

構成

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

location /static/css/ {
  concat on;
  concat_max_files 20;
  concat_unique off;
  concat_types text/css application/javascript;
}

マージ メソッド

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

以上がNginx がリクエスト接続をマージし、Web サイトへのアクセスを高速化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。