How Nginx handles HTTP requests

王林
Release: 2020-07-08 17:13:59
forward
2837 people have browsed it

How Nginx handles HTTP requests

Nginx is a high-performance web server that can handle a large number of concurrent requests at the same time. It combines multi-process mechanism and asynchronous mechanism. The asynchronous mechanism uses an asynchronous non-blocking method.

(Recommended tutorial:nginx tutorial)

The following is an introduction to Nginx’s multi-threading mechanism and asynchronous non-blocking mechanism.

1. Multi-process mechanism

Whenever the server receives a client, there is a server master process (master process) that generates a child process (worker process) Come out and establish a connection with the client for interaction until the connection is disconnected, and the sub-process ends.

The advantage of using processes is that each process is independent of each other and does not require locking, which reduces the impact of using locks on performance and reduces programming complexity and development costs.

Secondly, using independent processes can prevent processes from affecting each other. If one process exits abnormally, other processes will work normally, and the master process will quickly start a new worker process to ensure that the service is not interrupted. will interrupt, minimizing risk.

Disadvantages:

The operating system generates a child process that requires memory copying and other operations, which will cause a certain overhead in terms of resources and time. When there are a large number of requests, system performance will decrease.

2. Asynchronous non-blocking mechanism

Each worker process uses asynchronous non-blocking mode and can handle multiple client requests.

When a working process receives a request from the client, it calls IO for processing. If the result cannot be obtained immediately, it will process other requests (that is, non-blocking); and the client does not need to wait during this period. In response, you can handle other things (that is, asynchronous).

When IO returns, this worker process will be notified; the process is notified and temporarily suspends the currently processed transaction to respond to the client request.

The above is the detailed content of How Nginx handles HTTP requests. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:csdn.net
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
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!