Maison > Article > Opération et maintenance > Comment Nginx fusionne les connexions de requêtes et accélère l'accès au site Web
小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 :
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!