Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Wie führt Nginx Anforderungsverbindungen zusammen und beschleunigt den Website-Zugriff?

Wie führt Nginx Anforderungsverbindungen zusammen und beschleunigt den Website-Zugriff?

王林
王林nach vorne
2023-05-15 10:16:18785Durchsuche

Tipps

Wenn wir im Internet surfen, gibt es einen wichtigen Faktor, der die Browsing-Geschwindigkeit beeinflusst, nämlich die Anzahl der gleichzeitigen Browser. Vereinfacht ausgedrückt bezieht sich die Anzahl der Parallelitäten auf die Anzahl der Aufgaben, die beim Durchsuchen einer Webseite gleichzeitig ausgeführt werden können.

Natürlich gilt das Limit des Browsers für die Anzahl gleichzeitiger Anfragen für denselben Domainnamen. Es gibt eine bestimmte Grenze für die Anzahl gleichzeitiger Anfragen unter demselben Domainnamen. Anfragen, die das Limit überschreiten, werden blockiert.

Werfen wir zunächst einen Blick auf die Anzahl der gleichzeitigen Verbindungen jedes Browsers:

Wie führt Nginx Anforderungsverbindungen zusammen und beschleunigt den Website-Zugriff?

Lassen Sie uns auflisten, welche Überlegungen der Browser bei dieser Entscheidung berücksichtigen kann.

  • Aufgrund der Einschränkungen des TCP-Protokolls kann der PC Seite verfügt nur über 65536 Ports, die zum Senden externer Nachrichtenverbindungen verwendet werden können, und das Betriebssystem hat auch eine Begrenzung der Anzahl halboffener Verbindungen, um zu verhindern, dass die TCPIP-Protokollstapelressourcen des Betriebssystems schnell erschöpft werden sollte nicht zu viele TCP-Verbindungen herstellen, sondern die TCP-Verbindungen wiederverwenden, nachdem sie aufgebraucht sind, oder die TCP-Verbindung einfach neu aufbauen.

  • Wenn zum Herstellen einer Verbindung ein blockierendes Socket-Modell verwendet wird, führt das gleichzeitige Herstellen mehrerer Verbindungen dazu, dass der Browser mehrere weitere Threads öffnen muss, und Threads gelten schließlich nicht als leichte Ressourcen werden einmal durchgeführt. Der Kontextwechsel ist teuer.

  • Dies ist der Browser, der als gewissenhafter Client fungiert und den Server schützt. Genau wie beim Konflikterkennungsmechanismus von Ethernet müssen Clients selbst eine Wartezeit festlegen, wenn sie öffentliche Ressourcen nutzen. Wenn mehr als zwei Clients öffentliche Ressourcen nutzen möchten, kann der starke böse Client dazu führen, dass der schwache Client überhaupt nicht auf die öffentlichen Ressourcen zugreifen kann. In der Vergangenheit wurde Xunlei kritisiert, weil es als HTTP-Protokoll-Client den Druck auf den Server nicht berücksichtigte und als BT-Client seine Verpflichtung zur Rückzahlung des Upload-Volumens nicht berücksichtigte.

Taobao tengine

Wenn wir einige Websites besuchen, werden wir feststellen, dass einige JS- und CSS-Dateien im Code durch eine Anfrage abgerufen werden. Aus den oben genannten wenigen Erkenntnissen wissen wir, dass die Anzahl der gleichzeitigen Browseranfragen hoch ist ist begrenzt, aber wenn Sie mehrere Datensätze in einer Anfrage kombinieren, ist die Antwortgeschwindigkeit möglicherweise schneller.

Die von Taobao verwendete Tengine ist ein Webserver auf Basis von Nginx, der seit Ende 2011 Open Source ist. Das Open-Source-Modul nginx-http-concat kann mehrere Dateien zu einer Antwortnachricht zusammenführen.

Installation

Erste Installation des Drittanbietermoduls 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

Konfiguration, Kompilierung und Installation

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

Wenn Nginx bereits installiert wurde, konfigurieren Sie einfach das Drittanbieter-Plug-in. nginx -v, überprüfen Sie die Nginx-Version. Wenn nicht, laden Sie die entsprechende Version herunter.

Führen Sie einfach den Code aus.

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

Nach erfolgreicher Kompilierung

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

Nginx töten und neu starten.

Konfiguration

Fügen Sie im Abschnitt „Standort“ die folgende Konfiguration hinzu:

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

Merge-Methode

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

Das obige ist der detaillierte Inhalt vonWie führt Nginx Anforderungsverbindungen zusammen und beschleunigt den Website-Zugriff?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen