Maison  >  Article  >  Opération et maintenance  >  Comment Nginx fusionne les connexions de requêtes et accélère l'accès au site Web

Comment Nginx fusionne les connexions de requêtes et accélère l'accès au site Web

王林
王林avant
2023-05-15 10:16:18768parcourir

小knowledge

Lorsque nous naviguons sur le Web, il existe un facteur important qui affecte la vitesse de navigation, à savoir le nombre de navigateurs simultanés. . En termes simples, le nombre de concurrence fait référence au nombre de tâches pouvant être effectuées simultanément lors de la navigation sur une page Web.

Bien entendu, la limite du navigateur sur le nombre de requêtes simultanées s'applique au même nom de domaine. Il existe une certaine limite sur le nombre de requêtes sous le même nom de domaine en même temps. la limite sera bloquée.

Tout d'abord, regardons le nombre de connexions simultanées de chaque navigateur :

Comment Nginx fusionne les connexions de requêtes et accélère laccès au site Web

Listons les considérations possibles qui le navigateur peut avoir à prendre cette décision.

  • En raison des limitations du protocole TCP, le côté PC ne dispose que de 65 536 ports disponibles pour envoyer des connexions vers l'extérieur, et le système d'exploitation limite également le nombre de connexions semi-ouvertes pour protéger le système d'exploitation. Les ressources de la pile de protocole TCP ne sont pas rapidement épuisées, le navigateur ne peut donc pas émettre trop de connexions TCP. Au lieu de cela, il adopte la méthode de réutilisation des connexions TCP. l'utiliser ou simplement rétablir la connexion TCP.

  • Si un modèle de socket bloquant est utilisé pour établir une connexion, l'émission de plusieurs connexions en même temps obligera le navigateur à ouvrez plus de threads, et les threads ne sont parfois pas considérés comme des ressources légères. Après tout, un changement de contexte coûte cher.

  • C'est le navigateur agissant comme un client consciencieux pour protéger le serveur. Tout comme le mécanisme de détection des conflits d'Ethernet, les clients doivent décider eux-mêmes d'un délai d'attente lorsqu'ils utilisent des ressources publiques. Lorsque plus de 2 clients souhaitent utiliser les ressources publiques, le client maléfique fort peut empêcher le client faible d'accéder complètement aux ressources publiques. Dans le passé, Xunlei a été critiqué parce qu'il n'était pas un client consciencieux. En tant que client du protocole HTTP, il ne prenait pas en compte la pression exercée sur le serveur. En tant que client BT, il ne considérait pas son obligation de rembourser le volume de téléchargement.

Taobaotengine

Lorsque nous visiterons certains sites Web, nous verrons le code Certains js et les fichiers CSS sont obtenus via une seule requête. D'après les connaissances ci-dessus, nous savons que le nombre de requêtes simultanées du navigateur est limité, mais si vous combinez plusieurs enregistrements en une seule requête, la vitesse de réponse peut être accélérée.

Le tengine utilisé par Taobao est un serveur web basé sur nginx, open source depuis fin 11. Le module open source nginx-http-concat peut fusionner plusieurs fichiers en un seul message de réponse.

Installation

Installation initiale du module tiers 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

Configuration et compilation Install

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

Si nginx a déjà été installé, configurez simplement le plug-in tiers. nginx -v, vérifiez la version de nginx, sinon téléchargez la version correspondante.

Exécutez simplement le code.

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

Après une compilation réussie

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

Tuez nginx et redémarrez.

Configuration

Ajoutez la configuration suivante dans la section localisation :

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

#🎜🎜 #Fusionner

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer