Wie Nginx HTTP-Anfragen verarbeitet

王林
Freigeben: 2020-07-08 17:13:59
nach vorne
2899 Leute haben es durchsucht

Wie Nginx HTTP-Anfragen verarbeitet

Nginx ist ein Hochleistungs-Webserver, der eine große Anzahl gleichzeitiger Anfragen gleichzeitig verarbeiten kann. Es kombiniert einen Multiprozessmechanismus und einen asynchronen Mechanismus. Der asynchrone Mechanismus verwendet eine asynchrone nicht blockierende Methode.

(Empfohlenes Tutorial: nginx-Tutorial )

Das Folgende ist eine Einführung in den Multithreading-Mechanismus und den asynchronen nicht blockierenden Mechanismus von Nginx.

1. Multiprozessmechanismus

Immer wenn der Server einen Client empfängt, generiert der Server-Masterprozess einen untergeordneten Prozess (Arbeitsprozess). Kommen Sie heraus und stellen Sie eine Verbindung her Der Client wartet auf Interaktion, bis die Verbindung getrennt wird und der Unterprozess endet.

Der Vorteil der Verwendung von Prozessen besteht darin, dass jeder Prozess unabhängig voneinander ist und keine Sperren erfordert, was die Auswirkungen der Verwendung von Sperren auf die Leistung verringert und gleichzeitig die Programmierkomplexität und Entwicklungskosten reduziert.

Zweitens kann durch die Verwendung unabhängiger Prozesse verhindert werden, dass sich Prozesse gegenseitig beeinflussen. Wenn ein Prozess abnormal beendet wird, funktionieren andere Prozesse normal und der Masterprozess startet schnell einen neuen Arbeitsprozess, um sicherzustellen, dass der Dienst nicht unterbrochen wird . wird unterbrechen und das Risiko minimieren.

Nachteile:

Das Generieren eines untergeordneten Prozesses durch das Betriebssystem erfordert das Kopieren des Speichers und andere Vorgänge, was einen gewissen Ressourcen- und Zeitaufwand verursacht. Bei einer großen Anzahl von Anfragen nimmt die Systemleistung ab.

2. Asynchroner, nicht blockierender Mechanismus

Jeder Arbeitsprozess verwendet den asynchronen, nicht blockierenden Modus und kann mehrere Client-Anfragen verarbeiten.

Wenn ein Arbeitsprozess eine Anfrage vom Client erhält, ruft er IO zur Verarbeitung auf. Wenn das Ergebnis nicht sofort abgerufen werden kann, verarbeitet er andere Anfragen (d. h. nicht blockierend). Während dieser Zeit müssen Sie warten. Als Reaktion darauf können Sie andere Dinge erledigen (d. h. asynchron).

Wenn IO zurückkehrt, wird dieser Arbeitsprozess benachrichtigt; der Prozess wird benachrichtigt und unterbricht vorübergehend die aktuell verarbeitete Transaktion, um auf die Client-Anfrage zu reagieren.

Das obige ist der detaillierte Inhalt vonWie Nginx HTTP-Anfragen verarbeitet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!