How Nginx merges request connections and accelerates website access

王林
Release: 2023-05-15 10:16:18
forward
768 people have browsed it

Little Knowledge

When we browse the web, there is an important factor that affects the browsing speed, which is the number of concurrent browsers. In simple terms, the number of concurrency refers to the number of simultaneous tasks when browsing a web page.

Of course, the browser's limit on the number of concurrent requests is for the same domain name. There is a certain limit on the number of requests under the same domain name at the same time. Requests that exceed the limit will be blocked.

First of all, let’s look at the number of concurrent connections of each browser:

How Nginx merges request connections and accelerates website access

Let’s list what considerations the browser may have in making this decision

  • Due to the limitations of the tcp protocol, there are only 65536 ports on the PC side that can be used to issue connections to the outside. The operating system also limits the number of half-open connections to protect the operating system's tcpip protocol stack resources from being quickly exhausted. Therefore, The browser is not good at issuing too many TCP connections. Instead, it adopts the method of reusing the TCP connection after using it or simply re-establishing the TCP connection.

  • If a blocking socket model is used to establish a connection, issuing multiple connections at the same time will cause the browser to have to open several more threads, and the threads have Time is not a lightweight resource. After all, the cost of a context switch is not small.

  • #This is the browser acting as a conscientious client to protect the server. Just like Ethernet's conflict detection mechanism, clients must decide on their own a waiting period when using public resources. When more than 2 clients want to use public resources, the strong evil client may cause the weak client to be completely unable to access the public resources. In the past, Xunlei was criticized because it was not a conscientious client. As an http protocol client, it did not consider the pressure on the server. As a bt client, it did not consider its obligation to repay the upload volume.

Taobao tengine

When we visit some websites, we will see that some js and css files in the code are passed Obtained in one request. From the above knowledge, we know that the number of concurrent browser requests is limited, but if multiple records are merged into one request, the response speed may be accelerated.

The tengine used by Taobao is a web server based on nginx, which has been open source since the end of 2011. The open source module nginx-http-concat can merge multiple files into one response message.

Installation

Initial installation of third-party module 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
Copy after login

Configuration, compilation and installation

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

If nginx has been installed, just configure the third-party plug-in. nginx -v, check the nginx version, if not, download the corresponding version.

Just execute the code.

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

After successful compilation

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

Kill nginx and restart.

Configuration

Add the following configuration in the location section:

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

Merge method

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

The above is the detailed content of How Nginx merges request connections and accelerates website access. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!